Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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 :
  1. Private Sub CommandButton1_Click()
  2. ChangeFileOpenDirectory "\\Cesar\Secteur Gestion-Liquidation du SFC\Essai OSIRIS\"
  3. 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
  4. End Sub


Merci d'avance pour vos réponses
Lassé par la pub ? Créez un compte

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 :
  1. Private Sub CommandButton1_Click()
  2. ChangeFileOpenDirectory "\\Cesar\Secteur Gestion-Liquidation du SFC\Essai OSIRIS\"
  3. 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
  4. End Sub

Je viens de modifier ma mcaro de la sorte :

  1. Private Sub CommandButton1_Click()
  2. Dim chemin As String, fichier As String
  3. chemin = "c:"
  4. fichier = chemin & "\" & .DataFields("CODE_UNITE_GCF") & " - " & Format(Date, "yy") & "," & Format(Date, "mm") & "," & Format(Date, "dd") & ".doc"
  5. ActiveDocument.SaveAs FileName: fichier
  6. ActiveDocument.PrintOut
  7. End Sub


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

Qu'est-ce qui ne tourne pas rond ?

Merci de votre aide
Expert Programmation

: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 à.
Expert Programmation

: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.


Aide VBA deWord
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.

  1. Dim mmdfTemp As MailMergeDataField
  2.  
  3. For Each mmdfTemp In _
  4. ActiveDocument.MailMerge.DataSource.DataFields
  5. MsgBox mmdfTemp.Name
  6. Next mmdfTemp

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.

  1. With Documents("Main.doc").MailMerge.DataSource
  2. .ActiveRecord = wdFirstRecord
  3. MsgBox .DataFields("LastName").Value
  4. End With


cartoiide a dit :
Merci Zeb, je regarde de plus cette rubrique ! Et l'exemple donné ...


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.
Lassé par la pub ? Créez un compte