Macro excel itération
martinpoirier
-
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
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:
- Macro excel itération
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
4 réponses
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
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
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
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
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 ?
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 ?
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 !
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 !