[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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 ? -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3770177.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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(pagei) 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)
Re: [fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
Bonsoir, Le 21 février 2012 12:15, lulu.bleu adilsa...@free.fr a écrit : 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 ;-) Yves 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(pagei) 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) '
[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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 -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3760289.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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. -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3725962.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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 :) http://nabble.documentfoundation.org/file/n3723091/exemplePYS.odt exemplePYS.odt Cordialement Pierre-Yves -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3723091.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
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 -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3719864.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
[fr-users] Re: [fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
Bonsoir, Le 06/02/2012 16:17, lulu.bleu a écrit : 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 ;-) 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 -- Seuls des formats ouverts peuvent assurer la pérennité de vos documents. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés
Re: [fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné
Bonsoir, Le 6 février 2012 16:17, lulu.bleu adilsa...@free.fr a écrit : 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. -- View this message in context: http://nabble.documentfoundation.org/Writer-Ne-pas-imprimer-seconde-et-troisieme-page-si-pas-renseigne-tp3719210p3719864.html Sent from the Users mailing list archive at Nabble.com. -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés -- web site : http://www.molenbaix.com -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés