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.
4 - Étape de copier-coller
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".
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 Word4 - É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