Macro excel itération

martinpoirier -  
 martinpoirier -
Bonjour,
j'ai créé une macro qui a l'aide d'un tableau excel rempli un document word a "trous"
mon problème est de pouvoir créer un bouton qui effectue cette macro pour chaque ligne de mon tableau (un bouton par ligne)
c'est a dire une ligne de donnée = un bouton = un document word rempli

je vous laisse ma programmation (je suis débutant alors soyez indulgent si je me suis compliqué la vie :-))

Sub EcritVersSignet()
Dim LaLettre As String
Dim Client
Dim Marque
Dim Modele
Dim Immat
Dim Serie
Dim Achat
Dim Km
Dim Couleur
Dim Puissance
Dim Equipement
Dim Prix
Dim Adresse
Dim ObjWord As Word.Application
Dim LeDocWord As Word.Document

On Error Resume Next

LaLettre = ThisWorkbook.Path & "\facturetype.doc"
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
Set LeDocWord = ObjWord.Documents.Open(LaLettre)
Client = [J4]
Marque = [A4]
Modele = [B4]
Immat = [G4]
Serie = [F4]
Achat = [I4]
Km = [H4]
Couleur = [C4]
Puissance = [E4]
Equipement = [D4]
Prix = [O4]
Adresse = [K4]

With LeDocWord

.Bookmarks("client").Range.Text = Client
.Bookmarks("marque").Range.Text = Marque
.Bookmarks("modele").Range.Text = Modele
.Bookmarks("immat").Range.Text = Immat
.Bookmarks("serie").Range.Text = Serie
.Bookmarks("achat").Range.Text = Achat
.Bookmarks("km").Range.Text = Km
.Bookmarks("couleur").Range.Text = Couleur
.Bookmarks("puissance").Range.Text = Puissance
.Bookmarks("equipement").Range.Text = Equipement
.Bookmarks("prix").Range.Text = Prix
.Bookmarks("adresse").Range.Text = Adresse

End With

End Sub

merci d'avance
A voir également:

4 réponses

tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Salut,
tu peux parcourir ton tableau à l'aide d'une boucle For...Next, le seul truc est de determiner la derniere ligne de ton tableau :
ex :
derlig = range("A65536").end(xlup).row 'renvoie le numéro de la premiere ligne non vide en A en partant du bas

For i = 2 to derlig 'boucle utilisée pour parcourir le tableau, le code entre For et Next sera executé pour caque valeur de i

Client = Range("J" & i).value
Marque = Range("A" & i).value
'etc...la tu inseres ds word

Next i 'fin de la boucle
0
martinpoirier
 
merci de répondre aussi vite !
j'avoue que la je suis un peu dépassé
je voudrai m'arrêter a la ligne 590 et mon tableau débute comme vous avez pu le voir a la ligne 4
vous serait il possible de m'aider a compléter cette "programmation" ?

j'aimerai un bouton par ligne (pouvoir rééditer une facture à n'importe quel moment)

merci d'avance
0
tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   435
 
Re,
ok j'ai un peu répondu à coté :s
pourquoi ne pas faire un seul bouton, qui permet par exemple d'executer le code pour la ligne active ?
0
martinpoirier
 
pourquoi pas mais je trouvais ca plus ergonomique et plus facile d'utilisation
le but étant que ce tableau puisse être utilisé par n'importe qui
j'aurai bien la solution de copier la macro pour chaque ligne de la renommer de changer les valeurs et enfin de créer un bouton mais merci la productivité ... je vais mettre un temps monstrueux a faire tout ca !
0