PB remplissage de champs de fusion de word à partie de vba d'excel
2 réponses
regis.blanchet
Bonjour,
j ai une application sur excel (2000) qui permet de remplir des champs
de fusion d'un document word (2000).
Set wordApp =3D CreateObject("word.application")
wordApp.Visible =3D True
adressa =3D ThisWorkbook.Path
Set wordDoc =3D wordApp.Documents.Open(adressa & "\Projet.doc")
For Each afield In wordDoc.fields
If InStr(1, afield.Code.Text, "Soci=E9t=E9", 1) Then afield.Result.Text =3D
soci
If InStr(1, afield.Code.Text, "Soap1", 1) Then afield.Result.Text =3D
ad1
If InStr(1, afield.Code.Text, "b1", 1) Then afield.Result.Text =3D
prenom(tablo(1))
If InStr(1, afield.Code.Text, "b2", 1) Then afield.Result.Text =3D
prenom(tablo(2))
If InStr(1, afield.Code.Text, "b3", 1) Then afield.Result.Text =3D
prenom(tablo(3))
Next afield
Set wordDoc =3D Nothing
Set wordApp =3D Nothing
Mon probl=E8me c'est que j'ai cr=E9=E9 les diff=E9rentes feuilles
contrairement =E0 un publipostage et donc je souhaite masquer la
deuxieme feuille si le signet b2 n'est pas rempli et la feuille b3 si
b3 est vide.
Pour cel=E0 j'ai ajout=E9 dans mon document word:
{ IF =ABMERGEFIELD b2=BB <> "" "mon texte pour b2" ""}
{ IF =ABMERGEFIELD b3=BB <> "" "mon texte pour b3" ""}
mon probl=E8me c est que quand excel me remplit mon document word mes
feuilles pour b2 et b3 sont toujours masqu=E9es m=EAme si je rentre une
donn=E9e.
Est ce que quelqu'un aurait la solution.
Merci d avance
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Dom
Bonjour,
Ta syntaxe m'intrigue : { IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""}
tu devrais essayer { IF { MERGEFIELD b2 } <> "" "mon texte pour b2" ""}
Dom
Bonjour,
j ai une application sur excel (2000) qui permet de remplir des champs de fusion d'un document word (2000).
Set wordApp = CreateObject("word.application") wordApp.Visible = True adressa = ThisWorkbook.Path Set wordDoc = wordApp.Documents.Open(adressa & "Projet.doc")
For Each afield In wordDoc.fields If InStr(1, afield.Code.Text, "Société", 1) Then afield.Result.Text > soci If InStr(1, afield.Code.Text, "Soap1", 1) Then afield.Result.Text > ad1 If InStr(1, afield.Code.Text, "b1", 1) Then afield.Result.Text > prenom(tablo(1)) If InStr(1, afield.Code.Text, "b2", 1) Then afield.Result.Text > prenom(tablo(2)) If InStr(1, afield.Code.Text, "b3", 1) Then afield.Result.Text > prenom(tablo(3)) Next afield Set wordDoc = Nothing Set wordApp = Nothing
Mon problème c'est que j'ai créé les différentes feuilles contrairement à un publipostage et donc je souhaite masquer la deuxieme feuille si le signet b2 n'est pas rempli et la feuille b3 si b3 est vide.
Pour celà j'ai ajouté dans mon document word: { IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""} { IF «MERGEFIELD b3» <> "" "mon texte pour b3" ""}
mon problème c est que quand excel me remplit mon document word mes feuilles pour b2 et b3 sont toujours masquées même si je rentre une donnée.
Est ce que quelqu'un aurait la solution. Merci d avance
Bonjour,
Ta syntaxe m'intrigue :
{ IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""}
tu devrais essayer
{ IF { MERGEFIELD b2 } <> "" "mon texte pour b2" ""}
Dom
Bonjour,
j ai une application sur excel (2000) qui permet de remplir des champs
de fusion d'un document word (2000).
Set wordApp = CreateObject("word.application")
wordApp.Visible = True
adressa = ThisWorkbook.Path
Set wordDoc = wordApp.Documents.Open(adressa & "Projet.doc")
For Each afield In wordDoc.fields
If InStr(1, afield.Code.Text, "Société", 1) Then afield.Result.Text > soci
If InStr(1, afield.Code.Text, "Soap1", 1) Then afield.Result.Text > ad1
If InStr(1, afield.Code.Text, "b1", 1) Then afield.Result.Text > prenom(tablo(1))
If InStr(1, afield.Code.Text, "b2", 1) Then afield.Result.Text > prenom(tablo(2))
If InStr(1, afield.Code.Text, "b3", 1) Then afield.Result.Text > prenom(tablo(3))
Next afield
Set wordDoc = Nothing
Set wordApp = Nothing
Mon problème c'est que j'ai créé les différentes feuilles
contrairement à un publipostage et donc je souhaite masquer la
deuxieme feuille si le signet b2 n'est pas rempli et la feuille b3 si
b3 est vide.
Pour celà j'ai ajouté dans mon document word:
{ IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""}
{ IF «MERGEFIELD b3» <> "" "mon texte pour b3" ""}
mon problème c est que quand excel me remplit mon document word mes
feuilles pour b2 et b3 sont toujours masquées même si je rentre une
donnée.
Est ce que quelqu'un aurait la solution.
Merci d avance
Ta syntaxe m'intrigue : { IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""}
tu devrais essayer { IF { MERGEFIELD b2 } <> "" "mon texte pour b2" ""}
Dom
Bonjour,
j ai une application sur excel (2000) qui permet de remplir des champs de fusion d'un document word (2000).
Set wordApp = CreateObject("word.application") wordApp.Visible = True adressa = ThisWorkbook.Path Set wordDoc = wordApp.Documents.Open(adressa & "Projet.doc")
For Each afield In wordDoc.fields If InStr(1, afield.Code.Text, "Société", 1) Then afield.Result.Text > soci If InStr(1, afield.Code.Text, "Soap1", 1) Then afield.Result.Text > ad1 If InStr(1, afield.Code.Text, "b1", 1) Then afield.Result.Text > prenom(tablo(1)) If InStr(1, afield.Code.Text, "b2", 1) Then afield.Result.Text > prenom(tablo(2)) If InStr(1, afield.Code.Text, "b3", 1) Then afield.Result.Text > prenom(tablo(3)) Next afield Set wordDoc = Nothing Set wordApp = Nothing
Mon problème c'est que j'ai créé les différentes feuilles contrairement à un publipostage et donc je souhaite masquer la deuxieme feuille si le signet b2 n'est pas rempli et la feuille b3 si b3 est vide.
Pour celà j'ai ajouté dans mon document word: { IF «MERGEFIELD b2» <> "" "mon texte pour b2" ""} { IF «MERGEFIELD b3» <> "" "mon texte pour b3" ""}
mon problème c est que quand excel me remplit mon document word mes feuilles pour b2 et b3 sont toujours masquées même si je rentre une donnée.
Est ce que quelqu'un aurait la solution. Merci d avance
regis.blanchet
J avais bien tapé sur mon document word
{ IF { MERGEFIELD b2 } <> "" "mon texte pour b2" ""}
pourtant quand b2 est non vide il n affiche toujours pas "mon texte pour b2"
est ce que c est parce que la valeur de b2 est inscrite dans "mon texte pour b2"?????
J avais bien tapé sur mon document word
{ IF { MERGEFIELD b2 } <> "" "mon texte pour b2" ""}
pourtant quand b2 est non vide il n affiche toujours pas "mon texte
pour b2"
est ce que c est parce que la valeur de b2 est inscrite dans "mon
texte pour b2"?????