Généraliser une macro
Fermé
ok22
Messages postés
3
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
25 juin 2013
-
18 juin 2013 à 19:41
ok22 Messages postés 3 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 25 juin 2013 - 25 juin 2013 à 22:47
ok22 Messages postés 3 Date d'inscription mardi 18 juin 2013 Statut Membre Dernière intervention 25 juin 2013 - 25 juin 2013 à 22:47
A voir également:
- Généraliser une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Macro recorder - Télécharger - Confidentialité
- Telecharger macro nblettre.xla - Forum Bureautique
4 réponses
Tu peux mettre une variable dans ta fonction range
Exemple
DIM UneLigne as integer
Dim facture As String
Dim dat As String
UneLigne = 5
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
While MsgBox("Voulez-vous vérifier une autre facture?", vbYesNo) = vbYes
UneLigne = UneLigne + 1
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
Wend
J'ai conservé ta mise en forme pour que tu puisse rapidement l'exécuter.
Exemple
DIM UneLigne as integer
Dim facture As String
Dim dat As String
UneLigne = 5
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
While MsgBox("Voulez-vous vérifier une autre facture?", vbYesNo) = vbYes
UneLigne = UneLigne + 1
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
Wend
J'ai conservé ta mise en forme pour que tu puisse rapidement l'exécuter.
ok22
Messages postés
3
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
25 juin 2013
24 juin 2013 à 18:19
24 juin 2013 à 18:19
Bonjour, désolé pour le retard
merci boubou pour la boucle, ça marche!
Par contre serait-il possible que les boutons créés à chaque ligne puissent eux aussi aller à la ligne à chaque fois? Car pour l'instant même si j'insère dans la boucle :
ActiveSheet.Buttons.Add(390, 60, 64, 14).Select
Selection.Characters.Text = facture
With Selection.Font
.Name = "Lucida Grande"
.FontStyle = "Normal"
.Size = 12
.StrikeThrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ils s'empilent au même endroit, ce qui est normal.
Désolé d'en demander encore^^
merci boubou pour la boucle, ça marche!
Par contre serait-il possible que les boutons créés à chaque ligne puissent eux aussi aller à la ligne à chaque fois? Car pour l'instant même si j'insère dans la boucle :
ActiveSheet.Buttons.Add(390, 60, 64, 14).Select
Selection.Characters.Text = facture
With Selection.Font
.Name = "Lucida Grande"
.FontStyle = "Normal"
.Size = 12
.StrikeThrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
ils s'empilent au même endroit, ce qui est normal.
Désolé d'en demander encore^^
Bonjour,
Les quatre chiffres entre parenthèses sont les paramètre fourni au bouton.
J'ai pas eu le temps de tester, mais c'est La position horizontale, verticale, longueur et largeur.
Tu pourrais remplacer
UneLigne = 1
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
While MsgBox("Voulez-vous vérifier une autre facture?", vbYesNo) = vbYes
UneLigne = UneLigne + 1
Range("c" & UneLigne + 5) = facture
Range("d" & UneLigne + 5) = dat
ActiveSheet.Buttons.Add(390, 60*UneLigne, 64, 14).Select
Si le 390 est la position horizontale, on aurait un bouton avec un interval régulier de 60. Si l'interval ne te convient pas, tu peux toujours mettre une longueur fixe avant l'interval (390, + 40*UneLigne + 20, 64, 14)
Je n'ai pas eu le temps de tester, mais j'ai bon espoir que ca t'aide.
Les quatre chiffres entre parenthèses sont les paramètre fourni au bouton.
J'ai pas eu le temps de tester, mais c'est La position horizontale, verticale, longueur et largeur.
Tu pourrais remplacer
UneLigne = 1
Range("c" & UneLigne) = facture
Range("d" & UneLigne) = dat
While MsgBox("Voulez-vous vérifier une autre facture?", vbYesNo) = vbYes
UneLigne = UneLigne + 1
Range("c" & UneLigne + 5) = facture
Range("d" & UneLigne + 5) = dat
ActiveSheet.Buttons.Add(390, 60*UneLigne, 64, 14).Select
Si le 390 est la position horizontale, on aurait un bouton avec un interval régulier de 60. Si l'interval ne te convient pas, tu peux toujours mettre une longueur fixe avant l'interval (390, + 40*UneLigne + 20, 64, 14)
Je n'ai pas eu le temps de tester, mais j'ai bon espoir que ca t'aide.
ok22
Messages postés
3
Date d'inscription
mardi 18 juin 2013
Statut
Membre
Dernière intervention
25 juin 2013
25 juin 2013 à 22:47
25 juin 2013 à 22:47
merci encore boubou pour la solution donnée et pour avoir consacré du temps à répondre à ma question.
a +
a +