Lancer 6 macros différentes, l'une après l'autre, grace à un seul bouton

pascale31

XLDnaute Nouveau
Bonjour,

Voici ma recherche. Je voudrais lancer 6 macros différentes en cliquant 6 fois sur le même bouton.
Premier clic lance macro1
Second clic lance macro2
etc...
Sixième clic lance macro6

Si on clic une septième fois, c'est interprété comme le premier clic d'une nouvelle série de 6.
En fait, je n'y arrive pas avec un seul bouton, car à chaque clic ça relance la macro1 au lieu de passer à la macro2 et etc.

Avez-vous une idée ?
Merci d'avance.
 

JCGL

XLDnaute Barbatruc
Re : Lancer 6 macros différentes, l'une après l'autre, grace à un seul bouton

Bonjour à tous,

Bienvenue sur XLD

Il est d'usage de déposer un fichier pour une tentative d'aide optimisée.
Si tes macros portent bien le nom Macro1, Macro2....

Fais un bouton qui les appelle :
Call Macro1
Call Macro2...

A + à tous
 

roro69

XLDnaute Impliqué
Re : Lancer 6 macros différentes, l'une après l'autre, grace à un seul bouton

Bonsoir a essayé
dans un module /affecté au bouton de commande
Dim NbClic As Long

Sub Test()

NbClic = NbClic + 1
If NbClic = 1 Then macro1
If NbClic = 2 Then macro2
If NbClic = 3 Then macro3
If NbClic = 4 Then macro4
If NbClic = 5 Then macro5
If NbClic = 6 Then macro6

If NbClic = 6 Then NbClic = 0
End Sub
A++
 

Pierrot93

XLDnaute Barbatruc
Re : Lancer 6 macros différentes, l'une après l'autre, grace à un seul bouton

Bonjour Pascale, roro, Jean-Claude:)

regarde ceci, à adapter, exemple avec 2 macros :

dans le module de la feuille où se trouve le bouton :
Code:
Option Explicit
Sub CommandButton1_Click()
Static b As Byte
b = IIf(b = 2, 1, b + 1)
Application.Run "macro" & b
End Sub

les macros dans un module standard :
Code:
Option Explicit
Sub macro1()
MsgBox "macro1"
End Sub
Sub macro2()
MsgBox "macro2"
End Sub

bon après midi
@+
 

pascale31

XLDnaute Nouveau
Re : Lancer 6 macros différentes, l'une après l'autre, grace à un seul bouton

Pour la capitalisation, voici ce que j'ai fait.
1 bouton avec une macro attachée

Sub mamacro()

NbClic = NbClic + 1
If NbClic = 1 Then Application.Run "ligne1"
If NbClic = 2 Then Application.Run "ligne2"
If NbClic = 3 Then Application.Run "ligne3"
If NbClic = 4 Then Application.Run "ligne4"
If NbClic = 5 Then Application.Run "ligne5"
If NbClic = 6 Then Application.Run "ligne6"

If NbClic = 6 Then NbClic = 0

End Sub

Bon, si on ne fait que 4 clics et qu'on veut repartir à zéro, ça ne gère pas ce cas automatiquement. Il faut re-cliquer 2 fois et ensuite on est calé sur le cas "Premier clic lance Macro1". Mais pour le moment ça me va comme cela.