[fr-users] RE: [Writer] Ne pas imprimer seconde et troisième page si pas renseigné

2012-02-23 Par sujet lulu.bleu
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é

2012-02-21 Par sujet lulu.bleu
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é

2012-02-21 Par sujet yves dutrieux
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é

2012-02-20 Par sujet lulu.bleu
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é

2012-02-08 Par sujet lulu.bleu
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é

2012-02-07 Par sujet pierre-yves samyn
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é

2012-02-06 Par sujet lulu.bleu
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é

2012-02-06 Par sujet Jean-Baptiste Faure
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é

2012-02-06 Par sujet yves dutrieux
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