[Writer] Ne pas imprimer seconde et troisième page si pas renseigné

Bonjour,

Pour faire simple j'ai un document avec trois pages, sur ma première page
j'ai un tableau qui comporte un certain nombre de lignes, en fonction des
dossiers que je traite je peux être amené à remplir un second tableau dans
une seconde page et un troisième dans une troisième page.
Pourquoi ne pas tout mettre dans le même tableau, c'est une question de
présentation et d'obligation je vais dire.
Si mon tableau en page 1 est plein et que je dois remplir le tableau en page
2 je dois imprimer les deux pages, si mon tableau en page 1 n'est pas
remplie ou qu'il est remplie je dois imprimer que la page 1 et pas les
autres.
A l'heure actuelle quand je remplie qu'une page et que je lance l'impression
les trois pages s'impriment, normal puisque mon document créé comporte trois
pages.

Comment puis je faire pour résoudre ce problème ?

Merci d'avance pour les réponses.

Cordialement

-----Message d'origine-----
De : lulu.bleu [mailto:adilsalhi@free.fr]
Envoyé : lundi 6 février 2012 10:41
À : users@fr.libreoffice.org
Objet : [fr-users] [Writer] Ne pas imprimer seconde et
troisième page si
pas renseigné

Bonjour,

Bonjour,

Pour faire simple j'ai un document avec trois pages, sur ma
première page
j'ai un tableau qui comporte un certain nombre de lignes, en
fonction des
dossiers que je traite je peux être amené à remplir un second
tableau dans
une seconde page et un troisième dans une troisième page.
Pourquoi ne pas tout mettre dans le même tableau, c'est une
question de
présentation et d'obligation je vais dire.
Si mon tableau en page 1 est plein et que je dois remplir le
tableau en page
2 je dois imprimer les deux pages, si mon tableau en page 1 n'est pas
remplie ou qu'il est remplie je dois imprimer que la page 1 et pas les
autres.
A l'heure actuelle quand je remplie qu'une page et que je
lance l'impression
les trois pages s'impriment, normal puisque mon document créé
comporte trois
pages.

Comment puis je faire pour résoudre ce problème ?

Si j'ai bien compris, les 3 tableaux ont des structures différentes, sinon un seul tableau prendrait le nombre de pages nécessaire avec répétition des têtes de colonnes.

Dans un tel cas, je ne mets dans le modèle que le tableau commun à tous avec seulement deux lignes : en-tête et première ligne, les autres étant créées à la volée par tabulation en fin de ligne, ainsi qu'il y ait 1 ligne ou 1 000, çà marche.

Dans des autotextes, je mets la structure des 2 autres tableaux y compris le paragraphe qui provoque le saut de page avant le tableau ajouté (toujours, avec une seule ligne vide pour amorcer le tableau), appelés par des mnémoniques simples et F3.

Ainsi, je réponds à toutes les combinaisons sans perte de papier et de temps.

Cordialement.

Jean-Yves ROYER
Trésorier du réseau des EPN du Lyonnais
http://www.epndulyonnais.org
Membre de l'ALDIL
http://www.aldil.org
Secrétaire de La Mouette
Association de soutien aux projets francophones de bureautique libre, dont LibreOffice
http://www.lamouette.org

24 au 26 février 2012 : Espace numérique libre
Salon Primevère - EUREXPO - Lyon/Chassieu
http://primevere.salon.free.fr

Merci d'avance pour les réponses.

Cordialement

--
View this message in context:
http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-se

conde-et-troisieme-page-si-pas-renseigne-tp3719210p3719210.html

Tout d'abord merci d'avoir pris le temps de répondre,

Ensuite je n'ai pas tout compris.
ma première idée était de faire un tableau avec une ligne et une liste
dynamique, le problème c'est que le huitième allez se mettre sur la seconde
page mais pas au bon endroit. On m'a donc conseillé de faire mon document
sur trois pages (pages qui sont identique en tout point). j'ai juste fait en
sorte que mes infos aillent se mettre dans les bonnes cellules et miracle ça
marche. Les infos sont stockés dans une base.

maintenant je suis embêté parce que si je n'ai qu'une page de remplis, les
trois sortent à l'impression.

Par contre je reviens sur votre explication, je ne comprends pas bien

"Dans des autotextes, je mets la structure des 2 autres tableaux y compris
le paragraphe qui provoque le saut de page avant le tableau ajouté
(toujours, avec une seule ligne vide pour amorcer le tableau), appelés par
des mnémoniques simples et F3. "

Serait il possible d'avoir plus d'explication ?

je vous joins un exemple du document.
http://nabble.documentfoundation.org/file/n3719864/exemple.odt exemple.odt

Bonsoir,

Tout d'abord merci d'avoir pris le temps de répondre,

Ensuite je n'ai pas tout compris.
ma première idée était de faire un tableau avec une ligne et une liste
dynamique, le problème c'est que le huitième allez se mettre sur la seconde
page mais pas au bon endroit. On m'a donc conseillé de faire mon document
sur trois pages (pages qui sont identique en tout point). j'ai juste fait en
sorte que mes infos aillent se mettre dans les bonnes cellules et miracle ça
marche. Les infos sont stockés dans une base.

maintenant je suis embêté parce que si je n'ai qu'une page de remplis, les
trois sortent à l'impression.

Le problème c'est que, du point de vue du traitement de texte, tu as
toujours 3 pages remplies puisque tu as un tableau sur chacune des
pages. Que les cellules de ces tableaux soient pleines de caractères ou
seulement d'un paragraphe vide, ne change rien, la page est remplie.
Quand on traite de l'information, rien c'est toujours quelque chose :wink:

Ce qui n'est pas clair pour moi, c'est si tu lances l'impression
toi-même en passant par le menu (fichier > imprimer) et si tu le fais
une fois de temps en temps, ou bien si c'est une opération en grande
série. Dans le premier cas, le dialogue d'impression permet de commander
quelles pages il faut imprimer. Dans le second cas peut-être qu'une
macro devrait permettre de détecter s'il y a des infos utiles dans les
tableaux et de piloter l'impression en conséquence.

Bonne soirée
JBF

Bonsoir,

Tout d'abord merci d'avoir pris le temps de répondre,

Ensuite je n'ai pas tout compris.
ma première idée était de faire un tableau avec une ligne et une liste
dynamique, le problème c'est que le huitième allez se mettre sur la seconde
page mais pas au bon endroit. On m'a donc conseillé de faire mon document
sur trois pages (pages qui sont identique en tout point). j'ai juste fait
en
sorte que mes infos aillent se mettre dans les bonnes cellules et miracle
ça
marche. Les infos sont stockés dans une base.

maintenant je suis embêté parce que si je n'ai qu'une page de remplis, les
trois sortent à l'impression.

Par contre je reviens sur votre explication, je ne comprends pas bien

"Dans des autotextes, je mets la structure des 2 autres tableaux y compris
le paragraphe qui provoque le saut de page avant le tableau ajouté
(toujours, avec une seule ligne vide pour amorcer le tableau), appelés par
des mnémoniques simples et F3. "

Serait il possible d'avoir plus d'explication ?

je vous joins un exemple du document.
http://nabble.documentfoundation.org/file/n3719864/exemple.odt exemple.odt

A la lecture du document exemple et d'après ce que j'ai compris, c'est un

mailing avec toutes les infos et un BREAK sur le nom qui figure dans
l'adresse du haut.
Donc :
- Je remplirais une feuille avec les infos de rues noms + un tableau que je
remplirais avec les infos de la première ligne + <enregistrement suivant>,
les infos de la seconde ligne (du tableau) + <enregistrement suivant> et
ainsi de suite, jusqu'à la dernière ligne du tableau avec : infos de la
dernière lignes (uniquement sans <enregistrement suivant>).

Dans ce cas, ton mailing devrait marcher et reprendre les infos que tu
souhaites. Il y aurait autant de page que nécessaire et pas une de plus.

Yves.

-----Message d'origine-----
De : lulu.bleu [mailto:adilsalhi@free.fr]
Envoyé : lundi 6 février 2012 16:17
À : users@fr.libreoffice.org
Objet : [fr-users] RE: [Writer] Ne pas imprimer seconde et troisième
page si pas renseigné

Bonsoir,

Tout d'abord merci d'avoir pris le temps de répondre,

C'est la règle du jeu.

Ensuite je n'ai pas tout compris.
ma première idée était de faire un tableau avec une ligne et une liste
dynamique, le problème c'est que le huitième allez se mettre
sur la seconde
page mais pas au bon endroit. On m'a donc conseillé de faire
mon document
sur trois pages (pages qui sont identique en tout point).
j'ai juste fait en
sorte que mes infos aillent se mettre dans les bonnes
cellules et miracle ça
marche. Les infos sont stockés dans une base.

maintenant je suis embêté parce que si je n'ai qu'une page de
remplis, les
trois sortent à l'impression.

Je ne comprends pas bien ce que vous voulez faire, y compris en regardant le document exemple. Une hypothèse est formulée par Yves Dutrieux. La solution qu'il propose est cohérente avec l'hypothèse qu'il fait.

Par contre je reviens sur votre explication, je ne comprends pas bien

"Dans des autotextes, je mets la structure des 2 autres
tableaux y compris
le paragraphe qui provoque le saut de page avant le tableau ajouté
(toujours, avec une seule ligne vide pour amorcer le
tableau), appelés par
des mnémoniques simples et F3. "

Serait il possible d'avoir plus d'explication ?

Cette solution s'applique pour un dossier comportant 3 tableaux différents dont 2 sont optionnels, ajoutés au document selon les besoins du dossier traité. Apparemment, ce n'est pas du tout ce que vous cherchez à faire.

Si l'hypothèse d'Yves Dutrieux ne correspondait pas à votre besoin il faudrait le décrire de manière plus précise, notamment en expliquant la procédure du traitement : sources des informations, séquence du traitement d'un dossier ou d'un lot de dossiers.

Cordialement.

Jean-Yves ROYER

Bonjour,

@Jean-Baptiste actuellement on lance l'impression au cas pas cas, mais tous
les trois mois on lance une impression collective donc la macro semble
nécessaire.

@yves l'adresse et le texte s'afficheront sur les trois pages même si les
tableaux ne sont pas remplis, puisque les pages sont identique, la
différence sera le nom des bénéficiaires dans les tableaux. Le mieux ne
serait pas de tester si la première ligne du tableau de la seconde et de la
troisième page sont remplis, si oui impression, sinon pas d'impression ?
J'aimerai faire un truc comme ça ! Si c'est possible, n'ayant de réelle
connaissance dans le domaine des macros je suis parti dans cette direction.
Peut on faire un break sur la première ligne d'un des tableaux ? Si oui,
comment s'y prendre ?

En tout cas merci beaucoup pour toutes ces infos.

Bonjour

lulu.bleu wrote

@Jean-Baptiste actuellement on lance l'impression au cas pas cas, mais
tous les trois mois on lance une impression collective donc la macro
semble nécessaire.

Puisque tu as commencé ce fil par "pour faire simple" mon avis est que rien
ne sera plus simple que de choisir ce qu'il faut imprimer lors de
l'impression, comme le suggérait Jean-Baptiste :
- soit 1
- soit 1-2
- soit "toutes les pages"
Autre possibilité offerte : impression de la sélection (il suffit donc de
sélectionner les pages concernées auparavant).

lulu.bleu wrote

@yves l'adresse et le texte s'afficheront sur les trois pages même si les
tableaux ne sont pas remplis, puisque les pages sont identique, la
différence sera le nom des bénéficiaires dans les tableaux.

Il me semble que tu n'as pas exactement compris ce que proposait Yves. De ce
que j'en ai compris moi (si je ne fais pas erreur donc...) il te propose
d'utiliser par défaut un document "lettre-type" d'une seule page. Le tableau
comprendrait des "champs de fusion" issus d'une source de données (par
exemple un classeur) dans laquelle tu saisirais les noms devant figurer dans
le tableau.

Avec cette solution, lors du publipostage (ou "mailing") le logiciel
remplace les champs de la lettre type par les valeurs contenues dans la
source de données. Quand la source de données comprend plus
d'enregistrements que prévus dans le document une nouvelle page est
automatiquement créée (identique) pour continuer, et ce tant qu'il y a des
données.

L'impression sera celle du document "résultat" de ce publipostage, qui ne
comprendra, comme l'indiquait Yves, que le nombre de pages à imprimer : 1
si la source de données "tient" sur un seul tableau, 2 sinon 3, etc.

J'en profite pour revenir sur la proposition de Jean-Yves : lui-aussi
proposait de n'avoir par défaut qu'un document d'une seule page, et de
n'insérer les pages 2 et 3 qu'en cas de besoin. Cette proposition semble
tout aussi raisonnable : pourquoi avoir par défaut "trop" de pages (ce qui
génère ton problème d'impression) alors qu'il existe des outils pour
faciliter l'insertion automatique en cas de besoin ?

J'ajoute que si tu n'as pas de connaissance des macros tu te lances dans
quelque chose de relativement compliqué...

Pour terminer, si tu souhaites tout de même avoir par défaut tes 3 pages (tu
es le meilleur juge...) une autre piste pourrait être de masquer ou non
celles "en trop".

Le document joint est un exemple de ce qui est possible sans macro :
- une section est insérée sur la page 2 et une autre sur la 3 (via le menu
Insertion)
- ces sections sont masquées "sous condition" ; la condition est en
l'occurrence la valeur d'une "variable"
- ces variables sont insérées dans le document via Insertion> Champs> Autres
onglet Variables
- un champ de saisie est inséré dans un cadre sur la première page pour
saisir ces variables ; l'utilisateur n'a ensuite qu'à cliquer sur le champ
et saisir "vrai" s'il souhaite la page
- le cadre ne sera pas imprimé avec le document car (onglet Options en
modification du cadre) la propriété correspondante est décochée.

Tout ceci est plus compliqué à expliquer qu'à réaliser ou utiliser,
néanmoins... je reviens sur ma première remarque... rien d'aussi simple que
d'indiquer les pages à imprimer :slight_smile:

http://nabble.documentfoundation.org/file/n3723091/exemplePYS.odt
exemplePYS.odt

Cordialement
Pierre-Yves

Bonjour et merci,

pierre -yves merci d'avoir pris le temps de détailler les explications, le
problème est que tous les trois mois nous éditons les documents de manière
collective, donc on ne peut pas choisir d'imprimer la page 1 ou la page 2 de
manière manuelle.
C'est pour ça que je cherche une solution pour "automatiser" .

Concernant la solution d'yves, au début j'avais fait quelque chose comme
préconisé par notre ami, le problème que je rencontrais, était qu'une fois
que mon tableau en page une était plein (7 bénéficiaires), il allait mettre
les autres lignes sur la page 2 mais pas au bon endroit, les tableaux sont à
des endroits précis pour des raisons pratique.

On m'a donc conseillé de faire trois page, d'où mes trois pages.

j'espère que c'est plus clair ?

Je désespère de trouver une solution.

Encore merci pour les différentes réponses.

Bonjour,

De retour d'une période sans ordinateur.
Je reviens vous embêter avec mon problème d'impression de page.
Avec l'aide d'un collègue, on essaye de pondre une macro pour faire en
sorte que les pages dans lesquelles les tableaux ne sont pas remplis (parce
que pas besoin suivant le dossier traité) ne soit pas imprimable.

Sub GotoPage(Page)
    Dim Doc As Object
    dim nbpages as string
       dim pageencours as string
       Dim oCC As Object , oCursor As Object
       Dim monCurseur as object
       'dim nbpages as object
       Doc = ThisComponent
       Curseur = ThisComponent.currentController.getViewCursor
    'monTexte = Doc.Text
    'monCurseurInvisible = monTexte.createTextCursor
    
    While Curseur.jumpToNextPage <> False
      msgbox("mon curseur " & Curseur.page)
       if Curseur.page = 2 then
         'le tableau de la page2 se nomme tableau8
         maTable = Doc.TextTables.getByName("Tableau8")
        'la cellule du nom est A1
          maCellule = maTable.getCellByName("A1")
          texteCellule = maCellule.String
          if texteCellule <> "" then
            msgBox ("tableau 8 " & texteCellule)
          else
            msgBox ("tableau 8 est vide " )
          endif
      endif
      
       if Curseur.page = 3 then
         'le tableau de la page2 se nomme tableau12
         maTable = Doc.TextTables.getByName("Tableau12")
        'la cellule du nom est A1
          maCellule = maTable.getCellByName("A1")
          texteCellule = maCellule.String
          if texteCellule <> "" then
            msgBox ("tableau 12 " & texteCellule)
            Curseur.jumpToPage(Curseur.page)
            monCurseur = Doc.Text.createTextCursor
            monCurseur.gotoNextParagraph(False)
            monCurseur.gotoNextParagraph(True)
            msgbox monCurseur.String
          else
            msgBox ("tableau 12 est vide " )
            Curseur.jumpToPage(Curseur.page)
            monCurseur = ThisComponent.createTextCursor
            monCurseur.gotoNextParagraph(False)
            monCurseur.gotoNextParagraph(True)
            msgbox monCurseur.String
          ' Curseur.jumpToEndStartOfPage
          endif
      endif
      Wend
      msgbox (" fin à " & Curseur.page)

End Sub

On est arrivé à tester si les tableaux de la page 2 et de la page 3 sont
remplis ou pas, ce que l'on arrive pas à faire c'est de supprimer la ou les
pages page qui n'ont pas besoin d'être imprimé lors de l'édition.

J'espère que cette petite explication est un peu plus claire.

Cordialement

Bonjour,

la solution la plus simple (tant à l'usage qu'à la maintenance) reste
néanmoins celle préconisée par yves.
maintenant, le problème ...

lulu.bleu wrote

...Concernant la solution d'yves, au début j'avais fait quelque chose
comme préconisé par notre ami, le problème que je rencontrais, était
qu'une fois que mon tableau en page une était plein (7 bénéficiaires), il
allait mettre les autres lignes sur la page 2 mais pas au bon endroit, les
tableaux sont à des endroits précis pour des raisons pratique...

... peut être contourné puisque ...

lulu.bleu wrote

... les pages sont identique, la différence sera le nom des bénéficiaires
dans les tableaux...

... il suffit donc de mettre le contenu de ta lettre en "Entête".
Ainsi, ton tableau sera placé au bon endroit sur chaque page. Chaque
nouvelle page contiendra le même texte et le tableau sera au bon endroit.

Ci.joint, un exemple lié à la base "bibliography"

http://nabble.documentfoundation.org/file/n3760583/LuluBleu.odt LuluBleu.odt

Cordialement,
Denis

Bonjour,

Avec mon collègue on est sur le point de finir notre macro, pour résumer
notre document d'origine fait trois pages, en fonction du nombre de
bénéficiaires par dossier on a une ou deux ou les trois pages de renseignés.
si les trois pages ne sont pas renseignés ont voudrait que la ou les pages
non renseignés ne soient pas imprimable.
Dans la macro on a fait en sorte qui si un tableau n'était pas rempli la
page s'efface et ça marche, vous imaginez la satisfaction d'être arrivé
jusque là.
le hic c'est qu'il reste un caractère non imprimable sur la page blanche et
donc elle est imprimable, comment faire pour que la page disparaisse pour de
bon ?
Dans libreoffice/outils/option/libreoffice writer/impression la case
"Imprimer les pages blanches insérer automatiquement est décoché.

Je met le code de la macro pour que vous ayez une idée de ce qui a été fait.
ça ne sera sûrement pas le code le plus spectaculaire que vous verrez, mais
on a essayé de faire de notre mieux, j'espère que vous serez indulgent.

Sub GotoPage(Page)
    Dim Doc As Object
    dim nbpages as string
       dim pageencours as string
       Dim oCC As Object , oCursor As Object
       Dim monCurseur as object
    dim Signet as Object, Text as Object
    dim i as integer
    dim CurseurVisible as object
    
       'dim nbpages as object
       Doc = ThisComponent
       Curseur = ThisComponent.currentController.getViewCursor
     ' unCurseur = monTexte.createTextCursorByrange()
    'monTexte = Doc.Text
    'monCurseurInvisible = monTexte.createTextCursor
    Curseur.jumpToFirstPage()
    Curseur.jumpToLastPage()
    Nombrepages = Curseur.page
    Curseur.jumpToFirstPage()
    MsgBox(NombrePages)
  
    for i = NombrePages to 1 step -1
      msgbox("page " & i)
      if i = 2 then
        msgbox(i)
        CurseurVisible = Doc.currentcontroller.viewCursor
        CurseurVisible.jumpToPage(i)
         'le tableau de la page2 se nomme tableau8
         maTable = Doc.TextTables.getByName("Tableau8")
        'la cellule du nom est A1
          maCellule = maTable.getCellByName("A1")
          texteCellule = maCellule.String
          if texteCellule <> "" then
            msgBox ("tableau 8 " & texteCellule)
          else
            SignetDebut = Doc.Bookmarks.getByName("pagedebut2")
            SignetFin = Doc.Bookmarks.getByName("pagefin2")
          CurseurVisible = Doc.currentcontroller.viewCursor
        ' CurseurVisible.jumpToPage(Curseur.page)
          CurseurVisible.goToRange(SignetDebut.Anchor,False)
          Text = CurseurVisible.Text
          Curseur = Text.createTextCursorByRange(CurseurVisible)
          CurseurVisible.goToRange(SignetFin.Anchor,True)
          CurseurVisible.String=""
          CurseurVisible.jumpToStartOfPage
          endif
      endif
      
       if i = 3 then
         msgbox(i)
         CurseurVisible = Doc.currentcontroller.viewCursor
         CurseurVisible.jumpToPage(i)
          'le tableau de la page2 se nomme tableau12
         maTable = Doc.TextTables.getByName("Tableau12")
        'la cellule du tableau est A1
          maCellule = maTable.getCellByName("A1")
          texteCellule = maCellule.String
          
          if texteCellule <> "" then
          else
            SignetDebut = Doc.Bookmarks.getByName("pagedebut3")
            SignetFin = Doc.Bookmarks.getByName("pagefin3")
        ' CurseurVisible.jumpToPage(Curseur.page)
          CurseurVisible.goToRange(SignetDebut.Anchor,False)
          Text = CurseurVisible.Text
          Curseur = Text.createTextCursorByRange(CurseurVisible)
          CurseurVisible.goToRange(SignetFin.Anchor,True)
          CurseurVisible.String=""
            CurseurVisible.jumpToStartOfPage
            'leTexte = ThisComponent.Text.createEnumeration
          endif
      endif
    next
End Sub

Cordialement

Bonsoir,

Bonjour,

Avec mon collègue on est sur le point de finir notre macro, pour résumer
notre document d'origine fait trois pages, en fonction du nombre de
bénéficiaires par dossier on a une ou deux ou les trois pages de
renseignés.
si les trois pages ne sont pas renseignés ont voudrait que la ou les pages
non renseignés ne soient pas imprimable.
Dans la macro on a fait en sorte qui si un tableau n'était pas rempli la
page s'efface et ça marche, vous imaginez la satisfaction d'être arrivé
jusque là.
le hic c'est qu'il reste un caractère non imprimable sur la page blanche et
donc elle est imprimable, comment faire pour que la page disparaisse pour
de
bon ?
Dans libreoffice/outils/option/libreoffice writer/impression la case
"Imprimer les pages blanches insérer automatiquement est décoché.

Actuellement tes signets Debut sont calculés selon ton tableau (sur la

page).
Personnellement, je mettrait le premier signet à la fin de la première
page, le signet2 à la fin de la seconde page,
ça permettrait ainsi de sélectionner à partir de la page précédente pour
tes suppressions.

et je persiste à croire que ma solution proposée était plus "portable",
mais faut voir les choses du bon côté, maintenant vous programmez en macro
:wink:

Yves

il semblerait que je n'avais pas assez cherché, il suffit d'aller dans outil
/ personnaliser et de cliquer sur assigner, choisir la macro.
je m'en vais regarder ça de plus près.

Bonne soirée en tout cas.

Bien le bonjour messieurs,

C'est avec joie que je vous annonce que la macro qui nous a pris autant de
temps à mon collègue et à moi même fonctionne, encore merci yves pour le
dernier conseil.
Un soulagement, encore merci à vous pour le temps que vous avez passé dessus
pour nous aider, juste une dernière question et j'arrête de vous embêter, je
voudrais automatiser cette macro dés la création du document, mais dans le
sélecteur de macro je ne vois pas ma macro je ne peux pas lui assigner un
évènement. Comment faire ?