Microsoft 365 Copier des données d'un fichier excel sur un fichier word

ChristianJ

XLDnaute Nouveau
Bonjour à tous,

Je voudrais créer un rapport automatisé sur Word en reprenant des tableaux et des graphiques d'un fichier Excel vers un fichier template Word. Mon entreprise d'alternance générait des rapports automatisés de la sorte et je voudrais utiliser leur processus pour faire de même. Voici les étapes que j'ai imaginé pour un code de base qui permet de copier et de coller un élément X dans un Word. Sachant que l'élément X peut être un tableau ou encore des graphes.

1- identifier le chemin d'accès du fichier Excel actif
2- Utiliser ce chemin d'accès pour trouver le premier fichier Word dans le sous dossier sur lequel se trouve le fichier Excel. Donc dans ce dossier, il y aura deux fichiers ; un Word (le template du rapport) et le fichier Excel avec tous les éléments à copier.
2.1 - Message d'erreur si aucun fichier Word n'est trouvé dans le dossier​
3- ouvrir le fichier Word
4 - Étape de copier-coller
4.1.1 - copier l'élément X de l'onglet 1​
4.1.2 - coller l'élément X de l'onglet 1 en dessous du grand titre 1 du fichier Word​
4.2.1 - Copier l'élément X2 de l'onglet 2​
4.2.2 - coller l'élément X2 de l'onglet 2 en dessous du grand titre 1 du fichier Word​
4.3.1 …, etc. pour tous les éléments à copier. Je devrais alors reprendre ce code qui précise ce que je dois coller et où je dois le coller dans le fichier Word.​
5 - Message de fin de génération de rapport
6 - Enregistré le fichier word
7 - Enregistré le fichier Excel
8- Fermer les deux fichiers

J'ai essayé d'écrire un code avec chat GPT mais j'ai une erreur que je n'arrive à résoudre " Erreur d'exécution '52' Non ou numéro de fichier incorrect".

VB:
Sub CopierTableauVersWord()
    ' Obtenir le chemin d'accès du fichier Excel ouvert
    Dim cheminExcel As String
    cheminExcel = ThisWorkbook.Path & Application.PathSeparator & ThisWorkbook.Name

    ' Obtenir le chemin d'accès du dossier contenant le fichier Excel ouvert
    Dim dossierExcel As String
    dossierExcel = ThisWorkbook.Path & Application.PathSeparator

    ' Extraire le nom du sous-dossier du chemin d'accès du fichier Excel
    Dim nomSousDossier As String
    nomSousDossier = Split(dossierExcel, Application.PathSeparator)(UBound(Split(dossierExcel, Application.PathSeparator)) - 1)

    ' Rechercher le fichier Word dans le dossier Excel jusqu'au sous-dossier détecté automatiquement
    Dim nomFichierWord As String
    nomFichierWord = dossierExcel & nomSousDossier & Application.PathSeparator & "Template rapport audit.docx"

    ' Vérifier si le fichier Word existe
    If Dir(nomFichierWord) <> "" Then
        ' Ouvrir le fichier Word
        Dim wdApp As Word.Application
        Set wdApp = New Word.Application

        Dim wdDoc As Word.Document
        Set wdDoc = wdApp.Documents.Open(nomFichierWord)

        ' Copier le tableau de la plage B6:E14
        ThisWorkbook.Sheets("1").Range("B6:E14").Copy

        ' Aller à la fin du document Word et coller le contenu du presse-papiers
        wdApp.Selection.EndKey Unit:=wdStory
        wdApp.Selection.Paste

        ' Fermer le fichier Word
        wdDoc.Close SaveChanges:=True
        wdApp.Quit
        Set wdDoc = Nothing
        Set wdApp = Nothing

        ' Ajouter une pause de 2 secondes pour voir le résultat dans Word
        Application.Wait Now + TimeValue("00:00:02")

        MsgBox "Tableau copié avec succès dans le fichier Word !"
    Else
        MsgBox "Le fichier Word 'Template rapport audit.docx' n'a pas été trouvé dans le dossier de ce fichier Excel jusqu'au sous-dossier détecté automatiquement."
    End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 534
Messages
2 089 381
Membres
104 151
dernier inscrit
CMB