Bonjour,
Je suis novice en macro vba et j'ai une tâche à effectuer qui en requiert une. Cela fait des jours que je parcours les forums pour trouver une solution... sans succès.
Comme indiqué dans le titre, j'utilise une macro vba (trouvée sur le net) qui me permet de remplir un document word (dont les signets ont été définis au préalable) à partir d'informations contenues dans une feuille excel.
Cette macro fonctionne très bien pour la ligne définie. Mais j'aimerai la "dupliquer" pour qu'elle fonctionne sur chaque ligne (dont les cellules sont différentes). Ma première idée est de créer autant de modules que de lignes (max 99) mais c'est fastidieux et lourd (d'autant que par la suite j'ai d'autres docs word à remplir avec d'autres informations). Ma deuxième idée est d'insérer un double clic sur une cellule de la ligne que je veux utiliser pour remplir mon word mais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Sub Act() Dim WordApp As Word.Application Dim WordDoc As Word.Document Dim i As Byte Set WordApp = CreateObject("word.application") 'ouvre une session Word Set WordDoc = WordApp.Documents.Open("C:\Users\...docx") 'ouvre le document Word WordApp.Visible = False 'Word est masqué pendant l'opération WordDoc.Bookmarks("Info1").Range.Text = Range("a2").Value WordDoc.Bookmarks("Civilité1").Range.Text = Range("b2").Value WordDoc.Bookmarks("Nom1").Range.Text = Range("c2").Value WordDoc.Bookmarks("Prénom1").Range.Text = Range("d2").Value WordDoc.Bookmarks("Adresse1").Range.Text = Range("e2").Value WordDoc.ExportAsFixedFormat OutputFileName:= _ "_" & ".pdf", ExportFormat:= _ 17, OpenAfterExport:=True, OptimizeFor:= _ 0, Range:=0, From:=1, to:=1, _ Item:=0, IncludeDocProps:=True, KeepIRM:=True, _ CreateBookmarks:=0, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False WordDoc.Close savechanges:=False WordApp.Quit End Sub
1/ je ne sais pas insérer ce double clic malgré ce que j'ai trouvé comme instructions pour cela
2/ Je ne parviens pas à trouver le moyen de modifier ma macro pour avoir à la place de Range("a2").Value quelque chose qui permet d'avoir l'information contenue dans la colonne A et sur la ligne où a été effectué le double-clic.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Option Explicit Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Selection.Count = 1 Then If Not Intersect(Target, Range("D4")) Is Nothing Then Call MyMacro End If End If End Sub
Merci pour votre aide !
Partager