VBA Word enregistrement nom du fichier et valeur d'un champs de fusion

cartoiide

Habitué
Bonjour à tous,

Je cherche, sous VBA, à enregistrer un document word dont le nom doit comporter notamment la valeur d'un champs de fusion (nom du champ : "CODE_UNITE_GCF") présent sur ce document. Cette valeur est déterminée au moment où l'utilisateur enregistre le fichier.

Comment faire pour récupérer la valeur de ce champs ?

Voic le code que j'ai écris, mais qui ne fonctionne pas, bien sur :
[cpp]

Private Sub CommandButton1_Click()
ChangeFileOpenDirectory "\\Cesar\Secteur Gestion-Liquidation du SFC\Essai OSIRIS\"
ActiveDocument.SaveAs FileName:=ActiveDocument.FormFields("CODE_UNITE_GCF").Result & " Rejet " & Format(Date, "yy") & Format(Date, "mm") & Format(Date, "dd") & Format(Time, "hhmm") & ".doc", FileFormat:=wdFormatDocument
End Sub

[/cpp]

Merci d'avance pour vos réponses
 

cartoiide

Habitué
Bonjour à tous,

Je relance cette demande pour laquelle je n'ai pas trouvé de réponse malgré mes nouvelles recherches. Qu'llequ'un aurait-il la solution ?
 

cartoiide

Habitué
Bonjour à tous,

Je relance cette demande pour laquelle je n'ai pas trouvé de réponse malgré mes nouvelles recherches. Quelqu'un aurait-il la solution ?

Je cherche, sous VBA, à enregistrer un document word dont le nom doit comporter notamment la valeur d'un champs de fusion (nom du champ : "CODE_UNITE_GCF" ) présent sur ce document. Cette valeur est déterminée au moment où l'utilisateur enregistre le fichier.

Comment faire pour récupérer la valeur de ce champs ?

Voic le code que j'ai écris, mais qui ne fonctionne pas, bien sur :
[cpp]
Private Sub CommandButton1_Click()
ChangeFileOpenDirectory "\\Cesar\Secteur Gestion-Liquidation du SFC\Essai OSIRIS\"
ActiveDocument.SaveAs FileName:=ActiveDocument.FormFields("CODE_UNITE_GCF" ).Result & " Rejet " & Format(Date, "yy" ) & Format(Date, "mm" ) & Format(Date, "dd" ) & Format(Time, "hhmm" ) & ".doc", FileFormat:=wdFormatDocument
End Sub
[/cpp]
 

zeb

Modérateur
Pour des champs de fusion, je te propose de regarder du côté de DataFields.
Pour des champs de boîte de dialogue, je t'aurais conseillé FormFields.
 

cartoiide

Habitué
Bonjour et merci Zeb. Je cherche du côté de DataFields pour essayer de reprendre les valeurs de ces champs dans le nom du fichier.

 

cartoiide

Habitué
Je viens de modifier ma mcaro de la sorte :

[cpp]
Private Sub CommandButton1_Click()
Dim chemin As String, fichier As String
chemin = "c:"
fichier = chemin & "\" & .DataFields("CODE_UNITE_GCF") & " - " & Format(Date, "yy") & "," & Format(Date, "mm") & "," & Format(Date, "dd") & ".doc"
ActiveDocument.SaveAs FileName: fichier
ActiveDocument.PrintOut
End Sub

[/cpp]

Sans succès. L'exécution de la macro "bloque" sur ".Datafields".

Qu'est-ce qui ne tourne pas rond ?

Merci de votre aide
 

zeb

Modérateur
:ouch: M'enfin, c'est quoi ce .DataFields balancé comme ça, sans rien devant ?
Lis un peu l'aide sur cette propriété, en particulier la rubrique S'applique à.
 

zeb

Modérateur
:ouch: Tu ne lis pas l'aide de VBA ? Mais comment fais-tu pour programmer ?

Voilà ce que j'obtiens quand je demande de l'aide à VBA/Word. Ça a le mérite d'être clair ! Il y a une rubrique "S'applique à" juste en dessous du titre.


[citation][nom]Aide VBA deWord[/nom]
DataFields, propriété
Voir aussi S'applique à Exemple

Renvoie une collection MailMergeDataFields qui représente les champs de la source de fusion spécifiée. En lecture seule.

Pour plus d’informations sur le renvoi d’un élément donné appartenant à une collection, voir Renvoi d'un objet à partir d'une collection.

Exemple
Cet exemple montre comment afficher les noms de tous les champs de la source des données attachée au document principal de fusion actif.

[cpp]Dim mmdfTemp As MailMergeDataField

For Each mmdfTemp In _
ActiveDocument.MailMerge.DataSource.DataFields
MsgBox mmdfTemp.Name
Next mmdfTemp
[/cpp]
Cet exemple montre comment afficher la valeur du champ LastName du premier enregistrement de la source de données attachée au fichier Main.doc.

[cpp]With Documents("Main.doc").MailMerge.DataSource
.ActiveRecord = wdFirstRecord
MsgBox .DataFields("LastName").Value
End With[/cpp]

[/citation]
 

julien_05

Nouveau membre


Bonjour,

Avez-vous réussi à faire ce que vous vouliez ? Je souhaite rechercher des fichiers dont le nom est composé à partir de données issues d'un publipostage. Je n'arrive pas à récupérer les valeurs.

Merci d'avance.

Julien.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 950
Membres
1 586 382
Dernier membre
alejandrooo
Partager cette page
Haut