[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque courrier,
les champs de fusion utilisés, les conditions utilisées, ainsi que tous les signets et
les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque courrier,
les champs de fusion utilisés, les conditions utilisées, ainsi que tous les signets et
les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque courrier,
les champs de fusion utilisés, les conditions utilisées, ainsi que tous les signets et
les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque
courrier, les champs de fusion utilisés, les conditions utilisées, ainsi que
tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Merci de vos prochaines réponses.
Daniel H
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque
courrier, les champs de fusion utilisés, les conditions utilisées, ainsi que
tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Merci de vos prochaines réponses.
Daniel H
Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour chaque
courrier, les champs de fusion utilisés, les conditions utilisées, ainsi que
tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Merci de vos prochaines réponses.
Daniel H
Bonjour Daniel[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour
chaque courrier, les champs de fusion utilisés, les conditions utilisées,
ainsi que tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Oui, on peut, mais c'est un véritable développement que vous demandez-là
et qui demande un certain nombre de précisions comme la manière dont vous
voulez présenter les résultats.
Il me semble que vous devriez chercher un programmeur pour vous faire ça
surtout si vous n'avez pas de notions de vba.
--
A+
Bonjour Daniel
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour
chaque courrier, les champs de fusion utilisés, les conditions utilisées,
ainsi que tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Oui, on peut, mais c'est un véritable développement que vous demandez-là
et qui demande un certain nombre de précisions comme la manière dont vous
voulez présenter les résultats.
Il me semble que vous devriez chercher un programmeur pour vous faire ça
surtout si vous n'avez pas de notions de vba.
--
A+
Bonjour Daniel[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] Bonsoir,
Je dois faire une liste sur plus de 250 courriers et répertorier pour
chaque courrier, les champs de fusion utilisés, les conditions utilisées,
ainsi que tous les signets et les tableaux insérés (voir plus....).
Est-il possible de le faire par VBA, et comment ?
Oui, on peut, mais c'est un véritable développement que vous demandez-là
et qui demande un certain nombre de précisions comme la manière dont vous
voulez présenter les résultats.
Il me semble que vous devriez chercher un programmeur pour vous faire ça
surtout si vous n'avez pas de notions de vba.
--
A+
Mais il y a une chose que je ne comprends pas. Les courriers proviennent de
publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition... Ou alors je n'ai
pas tout compris ! Et ça c'est très posssilbe ! ;)
Mais il y a une chose que je ne comprends pas. Les courriers proviennent de
publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition... Ou alors je n'ai
pas tout compris ! Et ça c'est très posssilbe ! ;)
Mais il y a une chose que je ne comprends pas. Les courriers proviennent de
publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition... Ou alors je n'ai
pas tout compris ! Et ça c'est très posssilbe ! ;)
BonsoirMais il y a une chose que je ne comprends pas. Les courriers proviennent
de publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition...
Ou alors je n'ai pas tout compris ! Et ça c'est très posssilbe ! ;)
J'ai l'impression qu'il s'agit de recenser toutes les données qui sont
utilisées dans des documents de base réalisés pour des publipostages.
Et vu qu'il y en a 200, ça va vite devenir l'usine à gaz.
Imaginons que le résultat soit : la donnée <<Nom>> est utilisée en ligne
23 du document "Lettre aux notaires" et aussi à la ligne 26 du document
"lettre aux huissiers" et aux lignes 12, 15 et 18 dans le document "lettre
aux avocats" ...
On peut toujours dire que pour balayer les champs d'un document on peut
utiliser un
for each f in activeDocument.fields,
les tables :
for each t in ActiveDocument.Tables .
Une fois qu'on a trouvé une table, qu'est-ce qu'on en fait ?
Pour balayer les 200 documents il y a la batchmacro d'anacoluthe sur la
faq.
--
A+
Bonsoir
Mais il y a une chose que je ne comprends pas. Les courriers proviennent
de publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition...
Ou alors je n'ai pas tout compris ! Et ça c'est très posssilbe ! ;)
J'ai l'impression qu'il s'agit de recenser toutes les données qui sont
utilisées dans des documents de base réalisés pour des publipostages.
Et vu qu'il y en a 200, ça va vite devenir l'usine à gaz.
Imaginons que le résultat soit : la donnée <<Nom>> est utilisée en ligne
23 du document "Lettre aux notaires" et aussi à la ligne 26 du document
"lettre aux huissiers" et aux lignes 12, 15 et 18 dans le document "lettre
aux avocats" ...
On peut toujours dire que pour balayer les champs d'un document on peut
utiliser un
for each f in activeDocument.fields,
les tables :
for each t in ActiveDocument.Tables .
Une fois qu'on a trouvé une table, qu'est-ce qu'on en fait ?
Pour balayer les 200 documents il y a la batchmacro d'anacoluthe sur la
faq.
--
A+
BonsoirMais il y a une chose que je ne comprends pas. Les courriers proviennent
de publipostage ?? Dans ce cas, il n'y a plus de champ ni de condition...
Ou alors je n'ai pas tout compris ! Et ça c'est très posssilbe ! ;)
J'ai l'impression qu'il s'agit de recenser toutes les données qui sont
utilisées dans des documents de base réalisés pour des publipostages.
Et vu qu'il y en a 200, ça va vite devenir l'usine à gaz.
Imaginons que le résultat soit : la donnée <<Nom>> est utilisée en ligne
23 du document "Lettre aux notaires" et aussi à la ligne 26 du document
"lettre aux huissiers" et aux lignes 12, 15 et 18 dans le document "lettre
aux avocats" ...
On peut toujours dire que pour balayer les champs d'un document on peut
utiliser un
for each f in activeDocument.fields,
les tables :
for each t in ActiveDocument.Tables .
Une fois qu'on a trouvé une table, qu'est-ce qu'on en fait ?
Pour balayer les 200 documents il y a la batchmacro d'anacoluthe sur la
faq.
--
A+
Sub ListeDesChamps()
'Activation du courrier ouvert
Windows(1).Activate
'On revient au début du document
Selection.HomeKey Unit:=wdStory
'Atteindre le signet qui suit
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'Compteur jusqu'à 100, je ne sais pas déceler que c'est le dernier signet
Compte = 1
Do While Compte < 100
'Sélection du signet et copie de celui-ci
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
'Activation du fichier pour recenser tous les champs
Documents("Listage_champs_courrier.doc").Activate
'On colle le champs et on ajoute une fin de paragraphe
Selection.Paste
Selection.TypeParagraph
'On revient sur le courrier
Windows(1).Activate
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'On met à jour le compteur
Compte = Compte + 1
'Boucle
Loop
Donc, ce que je recherche est de répertorier tous les champs de fusion, tableaux, ainsi
que les conditions ou calculs créés dans mes courriers.
Je le fais champs par champs, et les inscrit dans un document
("Listage_champs_courrier.doc"), avec le nom du fichier en début de liste (j'ai réussi
à modifier la macro pour arriver à ça, mais je ne l'ai pas avec moi...).
Le principe des for each "f" ou "t" ( je suppose qu'il faut indiquer à quel type de
données cela correspond ??, ce que je ne sais pas faire....)
doit sûrement permettre de
les répertorier dans un tableau (array, pour excel, mais là aussi je découvre) et
ensuite de les recopier dans mon document ("Listage_champs_courrier.doc") et éviter
d'avoir le dernier champs repris n fois du fait de la boucle comme c'est le cas avec
mon bricolage.
Sub ListeDesChamps()
'Activation du courrier ouvert
Windows(1).Activate
'On revient au début du document
Selection.HomeKey Unit:=wdStory
'Atteindre le signet qui suit
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'Compteur jusqu'à 100, je ne sais pas déceler que c'est le dernier signet
Compte = 1
Do While Compte < 100
'Sélection du signet et copie de celui-ci
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
'Activation du fichier pour recenser tous les champs
Documents("Listage_champs_courrier.doc").Activate
'On colle le champs et on ajoute une fin de paragraphe
Selection.Paste
Selection.TypeParagraph
'On revient sur le courrier
Windows(1).Activate
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'On met à jour le compteur
Compte = Compte + 1
'Boucle
Loop
Donc, ce que je recherche est de répertorier tous les champs de fusion, tableaux, ainsi
que les conditions ou calculs créés dans mes courriers.
Je le fais champs par champs, et les inscrit dans un document
("Listage_champs_courrier.doc"), avec le nom du fichier en début de liste (j'ai réussi
à modifier la macro pour arriver à ça, mais je ne l'ai pas avec moi...).
Le principe des for each "f" ou "t" ( je suppose qu'il faut indiquer à quel type de
données cela correspond ??, ce que je ne sais pas faire....)
doit sûrement permettre de
les répertorier dans un tableau (array, pour excel, mais là aussi je découvre) et
ensuite de les recopier dans mon document ("Listage_champs_courrier.doc") et éviter
d'avoir le dernier champs repris n fois du fait de la boucle comme c'est le cas avec
mon bricolage.
Sub ListeDesChamps()
'Activation du courrier ouvert
Windows(1).Activate
'On revient au début du document
Selection.HomeKey Unit:=wdStory
'Atteindre le signet qui suit
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'Compteur jusqu'à 100, je ne sais pas déceler que c'est le dernier signet
Compte = 1
Do While Compte < 100
'Sélection du signet et copie de celui-ci
Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
Selection.Copy
'Activation du fichier pour recenser tous les champs
Documents("Listage_champs_courrier.doc").Activate
'On colle le champs et on ajoute une fin de paragraphe
Selection.Paste
Selection.TypeParagraph
'On revient sur le courrier
Windows(1).Activate
Selection.GoTo What:=wdGoToField, Which:=wdGoToNext, Count:=1, Name:=""
Selection.Find.ClearFormatting
'On met à jour le compteur
Compte = Compte + 1
'Boucle
Loop
Donc, ce que je recherche est de répertorier tous les champs de fusion, tableaux, ainsi
que les conditions ou calculs créés dans mes courriers.
Je le fais champs par champs, et les inscrit dans un document
("Listage_champs_courrier.doc"), avec le nom du fichier en début de liste (j'ai réussi
à modifier la macro pour arriver à ça, mais je ne l'ai pas avec moi...).
Le principe des for each "f" ou "t" ( je suppose qu'il faut indiquer à quel type de
données cela correspond ??, ce que je ne sais pas faire....)
doit sûrement permettre de
les répertorier dans un tableau (array, pour excel, mais là aussi je découvre) et
ensuite de les recopier dans mon document ("Listage_champs_courrier.doc") et éviter
d'avoir le dernier champs repris n fois du fait de la boucle comme c'est le cas avec
mon bricolage.
Selection.Paste
Selection.Paste
Selection.Paste
ReSelection.Paste
Ici vous allez coller la valeur du champ, mais c'est plutôt les paramètres
du champ que vous voulez récupérer il me semble, donc au lieu de :
MonChamp.Range.Copy
DocRes.Bookmarks("EndOfDoc").Range.Paste
Il vaut sns doute mieux utiliser qqch comme :
DocRes.Bookmarks("EndOfDoc").Range.InsertAfter MonChamp.Code.Text
par exemple.
vous pouvez ajouter
& vbcr
pour la fin de paragraphe qui suit.
--
A+
Re
Selection.Paste
Ici vous allez coller la valeur du champ, mais c'est plutôt les paramètres
du champ que vous voulez récupérer il me semble, donc au lieu de :
MonChamp.Range.Copy
DocRes.Bookmarks("EndOfDoc").Range.Paste
Il vaut sns doute mieux utiliser qqch comme :
DocRes.Bookmarks("EndOfDoc").Range.InsertAfter MonChamp.Code.Text
par exemple.
vous pouvez ajouter
& vbcr
pour la fin de paragraphe qui suit.
--
A+
ReSelection.Paste
Ici vous allez coller la valeur du champ, mais c'est plutôt les paramètres
du champ que vous voulez récupérer il me semble, donc au lieu de :
MonChamp.Range.Copy
DocRes.Bookmarks("EndOfDoc").Range.Paste
Il vaut sns doute mieux utiliser qqch comme :
DocRes.Bookmarks("EndOfDoc").Range.InsertAfter MonChamp.Code.Text
par exemple.
vous pouvez ajouter
& vbcr
pour la fin de paragraphe qui suit.
--
A+
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle permet
m'échappe.
Je cherche comment reprendre le nom du courrier dont les champs sont extraits (bien les
paramètres, pas de soucis) pour l'inscrire au début, ou à la fin de la liste des
champs....
Et aussi, c'est tout nouveau, de mettre une trame de fond sur les champs..
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle permet
m'échappe.
Je cherche comment reprendre le nom du courrier dont les champs sont extraits (bien les
paramètres, pas de soucis) pour l'inscrire au début, ou à la fin de la liste des
champs....
Et aussi, c'est tout nouveau, de mettre une trame de fond sur les champs..
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle permet
m'échappe.
Je cherche comment reprendre le nom du courrier dont les champs sont extraits (bien les
paramètres, pas de soucis) pour l'inscrire au début, ou à la fin de la liste des
champs....
Et aussi, c'est tout nouveau, de mettre une trame de fond sur les champs..
Bonjour[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle
permet m'échappe.
L'enregistreur de macro traduit les manipulations de l'opérateur, il
utilise donc la notion de selection puisque c'est comme ça qu'on
travaille.
En vba il faut se dire qu'on traite tout ou partie de document, c'est à
dire l'objet Range.
Un inconvénient d'utiliser des sélections dans les macros c'est que
l'affichage réagit à chaque changement de sélection et cela ralentit
d'autant.
Mais comme ils ont des propriétés similaires on peut se servir de
l'enregistreur de macros pour écrire son code.Je cherche comment reprendre le nom du courrier dont les champs sont
extraits (bien les paramètres, pas de soucis) pour l'inscrire au début,
ou à la fin de la liste des champs....
Le nom complet du document ouvert est Mondocument.Name
ou le nom seul : activewindow.CaptionEt aussi, c'est tout nouveau, de mettre une trame de fond sur les
champs..
Sur quels champs ? Sur le contenu des champs que vous avez recopié ?
Pour savoir comment mettre une trame, utilisez l'enregistreur de macros.
Restera à délimiter le range à tramer, ça dépend de votre code.
--
A+
Bonjour
[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]
Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle
permet m'échappe.
L'enregistreur de macro traduit les manipulations de l'opérateur, il
utilise donc la notion de selection puisque c'est comme ça qu'on
travaille.
En vba il faut se dire qu'on traite tout ou partie de document, c'est à
dire l'objet Range.
Un inconvénient d'utiliser des sélections dans les macros c'est que
l'affichage réagit à chaque changement de sélection et cela ralentit
d'autant.
Mais comme ils ont des propriétés similaires on peut se servir de
l'enregistreur de macros pour écrire son code.
Je cherche comment reprendre le nom du courrier dont les champs sont
extraits (bien les paramètres, pas de soucis) pour l'inscrire au début,
ou à la fin de la liste des champs....
Le nom complet du document ouvert est Mondocument.Name
ou le nom seul : activewindow.Caption
Et aussi, c'est tout nouveau, de mettre une trame de fond sur les
champs..
Sur quels champs ? Sur le contenu des champs que vous avez recopié ?
Pour savoir comment mettre une trame, utilisez l'enregistreur de macros.
Restera à délimiter le range à tramer, ça dépend de votre code.
--
A+
Bonjour[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ]Je cherche autour, mais cette notion de sélection ou non, et ce qu'elle
permet m'échappe.
L'enregistreur de macro traduit les manipulations de l'opérateur, il
utilise donc la notion de selection puisque c'est comme ça qu'on
travaille.
En vba il faut se dire qu'on traite tout ou partie de document, c'est à
dire l'objet Range.
Un inconvénient d'utiliser des sélections dans les macros c'est que
l'affichage réagit à chaque changement de sélection et cela ralentit
d'autant.
Mais comme ils ont des propriétés similaires on peut se servir de
l'enregistreur de macros pour écrire son code.Je cherche comment reprendre le nom du courrier dont les champs sont
extraits (bien les paramètres, pas de soucis) pour l'inscrire au début,
ou à la fin de la liste des champs....
Le nom complet du document ouvert est Mondocument.Name
ou le nom seul : activewindow.CaptionEt aussi, c'est tout nouveau, de mettre une trame de fond sur les
champs..
Sur quels champs ? Sur le contenu des champs que vous avez recopié ?
Pour savoir comment mettre une trame, utilisez l'enregistreur de macros.
Restera à délimiter le range à tramer, ça dépend de votre code.
--
A+