Bonjour à tous,
je travaille sur des champs comportant des formules imbriquées.
Pour débogage et notamment plublication sur ce forum j'avais besoin de
copier le "code" du champ (et non pas le résultat)
j'ai donc trouvé et modifié cette petite macro qui insère en texte à la fin
du document les codes trouvés
sub code_champ()
Dim fieldLoop As Field
For Each fieldLoop In ActiveDocument.Fields
'MsgBox Chr(34) & fieldLoop.Code.Text & Chr(34)
pressepapier = fieldLoop.Code.Text
ActiveDocument.Content.InsertAfter pressepapier
ActiveDocument.Content.InsertAfter Chr(13) & Chr(10) & Chr(13)
Next fieldLoop
end sub
Cependant lorsque j'ai des champs imbriqués le résultat est donné pour
chaque champ
ex (les = { ou }:
= NUMPAGES \* MERGEFORMAT + PAGE \* MERGEFORMAT
NUMPAGES \* MERGEFORMAT
PAGE \* MERGEFORMAT
Mes questions donc
y a t'il une notion de hiérachie ? comment écrire je ne veux que le code
du champ parent?
Auriez vous une macro qui à partir du texte d'un code de champ recréé ce
champ ?
Tu sais qu'on peut imprimer le contenu des codes champs au lieu du résultat ?
--
A+
Geo
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. Ou ne traiter que certains champs si tu sais ceux que tu veux traiter.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites.
--
A+
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ,
juste une idée pas testée,
regarder ce que ferait l'enregistreur de macro avec F5 champ
traiter le champ, passer en fin de champ
puis refaire f5 champ etc.
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins
contre les parasites.
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. Ou ne traiter que certains champs si tu sais ceux que tu veux traiter.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites.
--
A+
Oliv'
Geo que je salut a écrit:
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter. en fait non
Mais peut être qu'en vérifiant la position du début du champ par rapport à la fin du précédent, ca marcherait mais je ne connais pas bien les objets vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites. pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post, cela fonctionne si j'imprime dans un fichier vers mon imprimante pdf ,pour pouvoir copier coller ailleurs ex ici : { ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }} Oliv'
Geo <Geo@sans.pub> que je salut a écrit:
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ,
juste une idée pas testée,
regarder ce que ferait l'enregistreur de macro avec F5 champ
traiter le champ, passer en fin de champ
puis refaire f5 champ etc.
ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter.
en fait non
Mais peut être qu'en vérifiant la position du début du champ par rapport à
la fin du précédent, ca marcherait mais je ne connais pas bien les objets
vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les
jardins contre les parasites.
pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post, cela
fonctionne si j'imprime dans un fichier vers mon imprimante pdf ,pour
pouvoir copier coller ailleurs ex ici :
{ ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }}
Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter. en fait non
Mais peut être qu'en vérifiant la position du début du champ par rapport à la fin du précédent, ca marcherait mais je ne connais pas bien les objets vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites. pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post, cela fonctionne si j'imprime dans un fichier vers mon imprimante pdf ,pour pouvoir copier coller ailleurs ex ici : { ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }} Oliv'
Oliv'
Oliv' <(supprimerceci) c'est moi !! a écrit:
Geo que je salut a écrit:
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter. en fait non
Mais peut être qu'en vérifiant la position du début du champ par rapport à la fin du précédent, ca marcherait mais je ne connais pas bien les objets vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites. pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post, cela fonctionne si j'imprime dans un fichier vers mon imprimante pdf ,pour pouvoir copier coller ailleurs ex ici : { ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }} Oliv'
Voici le code que j'ai pondu et qui à l'aire de fonctionner assez bien.
Sub ajout_texte_des_code_champs() ' ' Macro enregistrée le 06/04/2005 par Olivier CATTEAU ' Ajoute à la fin du document les codes de champs principaux trouvés
Dim fieldLoop As Field Selection.HomeKey Unit:=wdStory nbr = ActiveDocument.Fields.Count For i = 1 To nbr Set myfield = Selection.NextField If Not (myfield Is Nothing) Then StatusBar = "Field found :" & myfield.Index
ActiveDocument.Content.InsertAfter pressepapier2 ActiveDocument.Content.InsertAfter Chr(13) & Chr(10) & Chr(13) i = myfield.Index Next i
End Sub -- Espèrant que cela puisse vous servir Oliv'
Oliv' <(supprimerceci)catteau@ricour-assurances.fr> c'est moi !! a écrit:
Geo <Geo@sans.pub> que je salut a écrit:
Bonjour Oliv'
Sinon il faudrait modifier ta boucle en sautant de champ en champ,
juste une idée pas testée,
regarder ce que ferait l'enregistreur de macro avec F5 champ
traiter le champ, passer en fin de champ
puis refaire f5 champ etc.
ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux
traiter.
en fait non
Mais peut être qu'en vérifiant la position du début du champ par
rapport à la fin du précédent, ca marcherait mais je ne connais pas
bien les objets vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les
jardins contre les parasites.
pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post,
cela fonctionne si j'imprime dans un fichier vers mon imprimante pdf
,pour pouvoir copier coller ailleurs ex ici :
{ ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }}
Oliv'
Voici le code que j'ai pondu et qui à l'aire de fonctionner assez bien.
Sub ajout_texte_des_code_champs()
'
' Macro enregistrée le 06/04/2005 par Olivier CATTEAU
' Ajoute à la fin du document les codes de champs principaux trouvés
Dim fieldLoop As Field
Selection.HomeKey Unit:=wdStory
nbr = ActiveDocument.Fields.Count
For i = 1 To nbr
Set myfield = Selection.NextField
If Not (myfield Is Nothing) Then StatusBar = "Field found :" & myfield.Index
Sinon il faudrait modifier ta boucle en sautant de champ en champ, juste une idée pas testée, regarder ce que ferait l'enregistreur de macro avec F5 champ traiter le champ, passer en fin de champ puis refaire f5 champ etc. ce n'est pas le même code mais même résultat
Ou ne traiter que certains champs si tu sais ceux que tu veux traiter. en fait non
Mais peut être qu'en vérifiant la position du début du champ par rapport à la fin du précédent, ca marcherait mais je ne connais pas bien les objets vba WORD, suis carrèment plus à l'aise avec Excel.
NB C'est d'ailleurs l'époque aussi pour commencer à traiter les jardins contre les parasites. pas que les jardins ;-)))
Pour ce qui est de l'impression mentionnée dans ton précédent post, cela fonctionne si j'imprime dans un fichier vers mon imprimante pdf ,pour pouvoir copier coller ailleurs ex ici : { ={ NUMPAGES * MERGEFORMAT } +{ PAGE * MERGEFORMAT }} Oliv'
Voici le code que j'ai pondu et qui à l'aire de fonctionner assez bien.
Sub ajout_texte_des_code_champs() ' ' Macro enregistrée le 06/04/2005 par Olivier CATTEAU ' Ajoute à la fin du document les codes de champs principaux trouvés
Dim fieldLoop As Field Selection.HomeKey Unit:=wdStory nbr = ActiveDocument.Fields.Count For i = 1 To nbr Set myfield = Selection.NextField If Not (myfield Is Nothing) Then StatusBar = "Field found :" & myfield.Index