Lien Excel vers Word

Variables dynamiques dans doc word, pilotées par excel :

  • Utiliser des codes de champs, qui sont modifiables par une macro vba:
  • Variable à ajouter dans le doc word :
  • Sous l'onglet Insertion, cliquez sur Champ. Dans la liste Catégorie, cliquez sur la catégorie de champ que vous voulez insérer : Formule personnalisée Cette catégorie utilise les fonctions Feuille de forme que vous entrez dans la zone Formule personnalisée pour créer une formule.

  • Image de l'article
  • *{ DOCVARIABLE “Cranebeam” \\* MERGEFORMAT }*
    
  • Ladite macro, pour un fichier word situé dans le même dossier que l’excel :
  • Function OfferExportUS()
    
        Dim objWord
        Dim objDoc
        Dim CheminFichier As String
        Dim FeuilleOffer As Worksheet
        Dim machineType As String
    
        ' Assurez-vous que le classeur est ouvert et actif
        Set FeuilleOffer = ThisWorkbook.Sheets("Offer")
        
        machineType = Range("OfferMachineType").Value
        
        CheminFichier = ThisWorkbook.Path & "\Offer_model_" & machineType & "_US.docx"
    
        ' Word Objekt erstellen
        Set objWord = CreateObject("Word.Application")
        ' Word Dokument öffnen
        Set objDoc = objWord.Documents.Open(CheminFichier)
        
        '___________Enregistrer sous OFFER TITLE_____________
        ' Créez un nom de fichier basé sur la valeur d'OfferTitle
        NomFichier = Replace(OfferTitleValue & ".docx", " ", "_")
        ' Déterminez le chemin complet du dossier du classeur actif
        DossierClasseur = ThisWorkbook.Path
        CheminFichier2 = DossierClasseur & "\" & NomFichier
        
        objDoc.SaveAs CheminFichier2
         
        'Copie des informations
        objDoc.Variables("OfferTitle").Value = FeuilleOffer.Range("LinkEN_OfferTitle").Value
    		objDoc.Variables("OfferTitle2").Value = FeuilleOffer.Range("LinkEN_OfferTitle2").Value
        
        '***************RESET VARIABLES************
        'For Each objVar In objDoc.Variables
        '    ' Réinitialiser la valeur de la variable à vide
        '    objVar.Value = objVar.Name
        'Next objVar
        '******************************************
        
        ' Mettez à jour le document Word
        objDoc.Fields.Update
        
        ' Enregistrez le document Word (après les modifications)
        objDoc.Save
        
        objWord.Visible = True
        
        'Afficher la fenetre Word (ne marche pas ?)
        objWord.Activate
    
    End Function