OVH Cloud OVH Cloud

Filigranes

7 réponses
Avatar
Lola
Bonsoir tout le monde !

Je dois imprimer un certain nombre d'exemplaires d'un document Word en
ajoutant en filigrane sur chaque page de chaque exemplaire le nom de son
destinataire.
La FAQ de Circé m'a été d'un grand secours pour apprendre à insérer un
filigrane, mais s'il existait une solution pour n'être pas obligé répéter la
manip pour chacun des x exemplaires, je serais bien aise que vous me la
donniez !

Merci d'avance pour votre aide.

Lola
--
« À bord de l'Hermus. Sur ma couchette, après avoir lu du Joubert : des
pensées si fines qu'elles ressemblent à des ailes d'insectes disséquées. En
somme, le La Bruyère du filigrane. »

7 réponses

Avatar
JièL
Bonjoir(c) Lola

Circé m'a dit de dire : ;-)

Ben... et la batchmacro magique d'anacoluthe ?....

On la trouve ici :
http://faqword.free.fr/download.php?lng=fr&pgs6

A ++

--
JièL / Jean-Louis GOUBERT
http://forums.offices.free.fr/
Là bas mieux qu'en face

Bonsoir tout le monde !

Je dois imprimer un certain nombre d'exemplaires d'un document Word en
ajoutant en filigrane sur chaque page de chaque exemplaire le nom de son
destinataire.
La FAQ de Circé m'a été d'un grand secours pour apprendre à insérer un
filigrane, mais s'il existait une solution pour n'être pas obligé répéter la
manip pour chacun des x exemplaires, je serais bien aise que vous me la
donniez !

Merci d'avance pour votre aide.

Lola
--
« À bord de l'Hermus. Sur ma couchette, après avoir lu du Joubert : des
pensées si fines qu'elles ressemblent à des ailes d'insectes disséquées. En
somme, le La Bruyère du filigrane. »




Avatar
Lola
"JièL" a écrit dans le message de
news:

Circé m'a dit de dire : ;-)
LOL!

Ben... et la batchmacro magique d'anacoluthe ?....
http://faqword.free.fr/download.php?lng=fr&pgs6



Excellente suggestion, m'sieur JièL ! Merci à Anacoluthe, Circé et toi !

Du coup, me voilà avec deux autres problèmes.
1) dans la macro ci-après, j'ai dû m...er quelque part, car elle ne
fonctionne pas :
le débogueur dit "Sub ou Function non définie" en surlignant "RVB" :
Selection.ShapeRange.Fill.ForeColor.RGB = RVB(192, 192, 192)

Sub Filigrane()
'
' Filigrane Macro
' Macro enregistrée le 18/08/2006 par Lola
'
ActiveDocument.Sections(1).Range.Select
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.HeaderFooter.Shapes.AddTextEffect(PowerPlusWaterMarkObject1, _
"Lola TARTEMPION", "Arial", 1, False, False, 0, 0).Select
Selection.ShapeRange.Name = "PowerPlusWaterMarkObject1"
Selection.ShapeRange.TextEffect.NormalizedHeight = False
Selection.ShapeRange.Line.Visible = False
Selection.ShapeRange.Fill.Visible = True
Selection.ShapeRange.Fill.Solid
->Selection.ShapeRange.Fill.ForeColor.RGB = RVB(192, 192, 192)
Selection.ShapeRange.Fill.Transparency = 0.5
Selection.ShapeRange.Rotation = 315
Selection.ShapeRange.LockAspectRatio = True
Selection.ShapeRange.Height = CentimetersToPoints(3.19)
Selection.ShapeRange.Width = CentimetersToPoints(20.77)
Selection.ShapeRange.WrapFormat.AllowOverlap = True
Selection.ShapeRange.WrapFormat.Side = wdWrapNone
Selection.ShapeRange.WrapFormat.Type = 3
Selection.ShapeRange.RelativeHorizontalPosition = _
wdRelativeVerticalPositionMargin
Selection.ShapeRange.RelativeVerticalPosition = _
wdRelativeVerticalPositionMargin
Selection.ShapeRange.Left = wdShapeCenter
Selection.ShapeRange.Top = wdShapeCenter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

2) je ne suis pas certaine de pouvoir "batchmacroter" dans ce cas précis,
puisqu'il s'agit d'un seul et même fichier à imprimer en y ajoutant
respectivement
- "Dugenou MARTIN"
- "Adèle BLANSEC"
- "Jean PENSEPAMOIN"
- "..."
à la place de "Lola TARTEMPION".
J'ai bien l'impression que Lola Tartempion va devoir se cogner tout ça à la
mimine, non ? :-)))

En tout cas, encore merci pour votre aide (passée et à venir...)

Lola

Avatar
Anacoluthe
Hello Lola !

'Lola' nous a écrit ...
Selection.ShapeRange.Fill.ForeColor.RGB = RVB(192, 192, 192)


RGB(192, 192, 192) et non RVB(192, 192, 192)
Le green est tout vert ...
C'est une macro enregistrée non retouchée ??

Pour imprimer X exemplaires du même document avec X filigranes
remplacez votre macro Filigrane par une /procédure/ à argument
Sub Filigrane(Nom As String)
en mettant la variable Nom à la place de "Lola TARTEMPION"
puis utilisez cette procédure dans une autre macro
qui ferait par exemple :
Filigrane("Dugenou MARTIN")
Activedocument.PrintOut
Filigrane("Adèle BLANSEC")
Activedocument.PrintOut
Filigrane("Jean PENSEPAMOIN")
Activedocument.PrintOut
etc
ou dans une autre qui demanderait d'entrer en boucle
les noms à imprimer

L'idéal serait de récupérer la liste des destinataires
dans un tableau, une base de donnée, une liste de contacts
au besoin avec un publipostage

Anacoluthe
« Les pâles images suggérées par la réflexion
ont rarement la force de conduire à l'action. »
- Charles MAURRAS

Avatar
Lola
"Anacoluthe" a écrit dans le message de news:

Hello Lola !


Bonjour Anacoluthe,

'Lola' nous a écrit ...
Selection.ShapeRange.Fill.ForeColor.RGB = RVB(192, 192, 192)


RGB(192, 192, 192) et non RVB(192, 192, 192)
Le green est tout vert ...
C'est une macro enregistrée non retouchée ??


'ffectivement. Qui plus est, la première du genre à laquelle je me sois
essayée. J'en suis verte...

Pour imprimer X exemplaires du même document avec X filigranes
remplacez votre macro Filigrane par une /procédure/ à argument
Sub Filigrane(Nom As String)
en mettant la variable Nom à la place de "Lola TARTEMPION"
puis utilisez cette procédure dans une autre macro
qui ferait par exemple :
Filigrane("Dugenou MARTIN")
Activedocument.PrintOut
Filigrane("Adèle BLANSEC")
Activedocument.PrintOut
Filigrane("Jean PENSEPAMOIN")
Activedocument.PrintOut
etc
ou dans une autre qui demanderait d'entrer en boucle
les noms à imprimer


Excellentissime ! (Pourvu que la FAQ contienne un chapitre "les procédures
pour les nuls)

L'idéal serait de récupérer la liste des destinataires
dans un tableau, une base de donnée, une liste de contacts
au besoin avec un publipostage


La liste d'une cinquantaine de noms existe. La transformer en tableau WW ou
XL, je saurai faire ;-)
Je vais faire des essais "à blanc" ce week-end et espère ne pas interférer
plus qu'il ne faut dans le peaufinage d'une certaine thèse (allez, la Miss
!)

Merci vielmals et à +

Lola (qui a bcp apprécié la maurrasserie :-D)


Avatar
Anacoluthe
Bonjour !

'Lola' nous a écrit ...
'ffectivement. Qui plus est, la première du genre à laquelle je me sois
essayée. J'en suis verte...


Ça alors j'y croyais pas, mais oui c'est un beugue de l'enregistreur
de macro qui code RVB au lieu de RGB !!!

C'est le premier vrai beugue de codage VBA de l'enregistreur que je
rencontre !! Je propose de l'appeler 'Bug Lola 2002'
2002 car je ne l'ai pas retrouvé dans la version 2003 !

~~~~

Si on se base sur ton code enregistré, voici à quoi ressemblerait
ta 'Procédure' Filigrane :

Public Sub Filigrane(Nom As String)
Dim monFiligrane As Shape
' --- Supprime et ajoute un filigrane
With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
For Each S In .Shapes: S.Delete: Next S
Set monFiligrane = .Shapes.AddTextEffect(0, _
Nom, "Arial", 20, False, False, 0, 0)
End With
' --- Propriétés du filigrane imprimé
With monFiligrane
.TextEffect.NormalizedHeight = False
.Line.Visible = False
.Fill.Visible = True
.Fill.Solid
.Fill.ForeColor.RGB = RGB(192, 192, 192)
.Fill.Transparency = 0.5
.Rotation = 315
.LockAspectRatio = True
.Height = CentimetersToPoints(3.19)
.Width = CentimetersToPoints(20.77)
.WrapFormat.AllowOverlap = True
.WrapFormat.Side = wdWrapNone
.WrapFormat.Type = 3
.RelativeHorizontalPosition = _
wdRelativeVerticalPositionMargin
.RelativeVerticalPosition = _
dRelativeVerticalPositionMargin
.Left = wdShapeCenter
.Top = wdShapeCenter
End With
Set monFiligrane = Nothing
End Sub

et pour utiliser cette procédure voici une /macro/ simple
à attribuer à un raccourci-clavier par exemple :

Public Sub NouveauFiligrane()
Dim NouveauNom As String
NouveauNom = InputBox("Quel nom ?", "Nom en filigrane")
Filigrane (NouveauNom)
End Sub

Il te suffit de copier la procédure et la macro dans un module
puis d'exécuter plusieurs fois la macro avec les noms différents

A+

Anacoluthe
« Transparente la fleur qu'il a sentie enfant
Au filigrane bleu de l'âme se greffant »
- Stéphane MALLARMÉ

Avatar
Lola
"Anacoluthe" a écrit dans le message de news:


C'est le premier vrai beugue de codage VBA de l'enregistreur que je
rencontre !! Je propose de l'appeler 'Bug Lola 2002'
2002 car je ne l'ai pas retrouvé dans la version 2003 !


Damned! :-)
~~~~

[...religieusement archivé...]

Il te suffit de copier la procédure et la macro dans un module
puis d'exécuter plusieurs fois la macro avec les noms différents



Merci !
Si avec ça, je n'y arrive pas, il faudra incriminer le virus PEBCAK,
récurrent sur mon poste de travail...
Dès que j'ai copié tout ça dans un module, je teste et reviens raconter.

Lola

Avatar
Lola
"Anacoluthe" a écrit dans le message de news:

Si on se base sur ton code enregistré, voici à quoi ressemblerait
ta 'Procédure' Filigrane :

Il te suffit de copier la procédure et la macro dans un module
puis d'exécuter plusieurs fois la macro avec les noms différents



On dirait bien que ça marche (ici, à la maison) !
Y a pu qu'à remettre ça au bureau (sans avoir l'air de trop tâtonner,
n'est-ce pas ? :-))
Encore mille mercis.

Lola