A voir également:
- VBA Excel et Word - Ouverture d'un modèle
- Word et excel gratuit - Guide
- Modèle organigramme word - Guide
- Si et excel - Guide
- Liste déroulante excel - Guide
- Espace insécable word - Guide
4 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 6 févr. 2021 à 21:04
Modifié le 6 févr. 2021 à 21:04
Re,
Voici le principe avec une boucle (non testée faute de modèle) :
Voici le principe avec une boucle (non testée faute de modèle) :
Option Explicit Sub ExcelVersWord() Dim AppWord As Object Dim Doc As Object Dim rng As Range Set rng = Worksheets("Feuil1").Range("A2:E2") ' Crée une instance de Word Set AppWord = CreateObject("Word.Application") AppWord.Visible = True Do While rng(1, 1).Formula <> "" ' Ouvre un nouveau document non enregistré Set Doc = AppWord.Documents.Add("C:\XXX\XXX\Portefeuille clients\Lettres d'anniversaire\Anniversaires.dotx") With Doc .Bookmarks("Titre_destinataire").Range.Text = rng(1, 1).Value .Bookmarks("Nom").Range.Text = rng(1, 3).Value & " " & rng(1, 2).Value .Bookmarks("Adresse").Range.Text = rng(1, 4).Value .Bookmarks("Ville").Range.Text = rng(1, 5).Value If rng(1, 1).Value = "Monsieur" Then .Bookmarks("Titre_texte").Range.Text = "Cher " & rng(1, 1).Value & " " & rng(1, 2).Value Else .Bookmarks("Titre_texte").Range.Text = "Chère " & rng(1, 1).Value & " " & rng(1, 3).Value End If End With ' Ici il faudrait enregistrer et fermer le doc, ' c'est pas obligatoire pour les essais : les fichiers restent ouverts ' Doc.SaveAs nomCompletFichier ' Doc.Close Set rng = rng.Offset(1) 'ligne suivante Loop End Sub
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 6 févr. 2021 à 16:14
Modifié le 6 févr. 2021 à 16:14
Bonjour,
Au lieu de Document.Open(Fichier) utiliser Document.Add(modèle)
Au lieu de Document.Open(Fichier) utiliser Document.Add(modèle)
Oserais-je abuser de ta gentillesse et connaissances ? Dans le code que je t'ai montré, je souhaiterais à présent générer une boucle pour que la macro ouvre un nombre de fichiers Word (.docx) en fonction du nombre de ligne visible. Je ne sais pas si je m'explique bien. Actuellement, les données inscrites dans le document Word sont définies manuellement par "range("A2"). J'aimerais que cette boucle fasse pareil mais depuis chaque ligne visible. 1 ligne = un document Word.
Encore merci et belle soirée.
Encore merci et belle soirée.
6 févr. 2021 à 22:32
Encore merci. Le point positif est que ça fonctionne. Le moins positif est que ça prend toutes les lignes (plus de 800). Ce que je souhaiterais c'est que ça prenne que les lignes affichées. En effet, le tableau montre les clients qui ont leur anniversaire aujourd'hui (date du jour). Dans le cas d'aujourd'hui, il y en avait 3 et j'aimerais que les données des cellules de ces trois clients soient insérées dans le document Word (3 fois uniquement).
Bonne soirée et salutations.
6 févr. 2021 à 22:55
7 févr. 2021 à 05:22
Tout fonctionne à la perfection.
Très sympa de ta part. Salutations