Plusieurs fois, vous devez copier des données d’un fichier Excel vers un document Word. Vous pouvez le faire avec une macro très facilement. La macro ouvrira un document Word nouveau / existant, copiera le contenu, puis enregistrera et fermera le document Word. Voyons comment cela se fait.

Le code que vous pouvez utiliser est – Option Explicit _Sub CreateNewWordDoc ()

Dim i As Integer Dim wrdApp As Object, wrdDoc As Object Set wrdApp = CreateObject («Word.Application»)

wrdApp.Visible = True Set wrdDoc = wrdApp.Documents.Add Avec wrdDoc For i = 1 à 100 .Content.InsertAfter «Voici un exemple de ligne de test #» & i .Content.InsertParagraphAfter Next i If Dir («B: \ Test \ MyNewWordDoc.docx ») <>« »Puis tuez« B: \ Test \ MyNewWordDoc.docx ».SaveAs (« B: \ Test \ MyNewWordDoc.docx »)

Close End With wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub_ Pour copier le code ci-dessus dans votre fichier, appuyez sur Alt + F11 sur le clavier Sur le côté gauche, vous verrez Objets Microsoft Excel Faites un clic droit et sélectionnez Insérer Cliquez ensuite sur Module * Copiez le code dans la fenêtre de code à droite Voyons maintenant comment ce code fonctionne – Nous déclarons d’abord les variables dont nous avons besoin –i comme un entier pour incrémenter chaque ligne au fur et à mesure qu’elle est remplie du fichier Excel au mot doc .Ensuite, les 2 variables d’objet wrdApp et wrdDoc, wrdApp est l’objet Application Word et wrdDoc est l’objet Document Word.

Set wrdApp = CreateObject (« Word.Application ») _ Si Word est déjà en cours d’exécution dans votre système, _CreateObject créera une nouvelle instance de Word. Cette ligne attribue donc la variable d’objet wrdApp à l’application Word que vous pourrez utiliser plus tard dans le code .

wrdApp.Visible = True L’instance nouvellement créée de Word ne sera pas visible lors de sa création. Pour le rendre visible, vous devez définir wrdApp.Visible = True afin qu’il soit visible.

Set wrdDoc = wrdApp.Documents.Add Nous avons créé la nouvelle instance de l’application Word, mais nous n’avons pas encore ouvert de document Word vierge. Donc, cette commande ouvrira un nouveau document Word. L’objet wrdDoc a été affecté à ce nouveau document afin que nous puissions l’utiliser plus tard dans le code.

Si vous ne souhaitez pas ouvrir un nouveau classeur mais ouvrez un classeur existant, vous pouvez remplacer cette ligne par _Set wrdDoc = wrdApp.Documents.Open («B: \ Mes documents \ WordDocs \ Doc1.docx») _ Cette ligne s’ouvre un document Word existant qui a été enregistré à l’emplacement spécifié.

Avec wrdDoc… .Fin Avec Ceci est notre boucle «Avec» qui fonctionnera entièrement avec l’objet wrdDoc. Une fois que vous ouvrez cette boucle, vous n’avez pas à répéter le texte «wrdDoc» dans cette boucle. Vous pouvez directement démarrer avec le point («.»)

avant tout objet relatif à wrdDoc. Cette boucle se termine par l’instruction End With. Une fois que l’instruction End With a été entrée, vous ne pouvez pas faire référence aux objets après wrdDoc avec juste le «.».

For i = 1 à 100 .Content.InsertAfter «Voici un exemple de ligne de test #» & i .Content.InsertParagraphAfter Next i Ceci est la boucle «For». Il incrémente de 1 à 100 et à chaque incrément, il insère une ligne avec le texte «Voici un exemple de ligne de test #», puis ajoute le numéro d’incrément. Ensuite, il insère un saut de ligne / saut de paragraphe pour que l’incrément suivant apparaisse sur le ligne suivante, comme un nouveau paragraphe.

Donc, ce processus sera répété 100 fois, car la boucle for indique For i = 1 à 100. C’est la sortie que vous obtiendrez –

img2

Si Dir (« B: \ Test \ MyNewWordDoc.Docx ») <> «  » Then Kill « B: \ Test \ MyNewWordDoc.docx » _ _ .SaveAs (« B: \ Test \ MyNewWordDoc.docx ») _ _.Close Une fois la boucle «For» terminée, le code vérifiera si le fichier MyNewWordDoc.docx existe. Si tel est le cas, il le supprimera. Ensuite, il enregistrera le nouveau fichier sous ce même nom et fermera le fichier.

wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing Le mot application est fermé puis les 2 objets qui ont été créés seront libérés ou mis à « Nothing », de sorte que la mémoire occupée par ces objets soit libérée. C’est tout le code qui se charge de copier le contenu d’Excel vers Word.

image 48