Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

zeltron

XLDnaute Occasionnel
Bonjour à tout le forum,

J'ai un fichier excel avec un certain nombre d'onglets. A partir du 3eme onglet ( "3eme" étant la position), tous les onglets ont un commandbutton1, sur lequel est affecté une macro.

J'aimerai que grâce à un commandbutton sur mon 2eme onglet ( "Crit"), lorqsque l on clique dessus, cela lance les macros de tous les commandbutton1 de tous les onglets; sachant que ce nombre d'onglet est variable.

Je n'arrive pas à trouver sur le forum une piste.

Jevous joint un fichier exemple.

Pouvez vous m'aider?

Vous en remerciant par avance

Cordialement

Zeltron
 

Pièces jointes

  • Exemple.xlsm
    46.5 KB · Affichages: 45
  • Exemple.xlsm
    46.5 KB · Affichages: 35
  • Exemple.xlsm
    46.5 KB · Affichages: 48

gilbert_RGI

XLDnaute Barbatruc
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Bonjour,

comme ceci

VB:
Sub Macro1()
    For i = 1 To Sheets.Count
        If Sheets(i).Name = "CRIT" Or Sheets(i).Name = "Param" Then GoTo suite
        With Sheets(i).Range("E1").Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 65535
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        Sheets(i).Range("E2").Value = "ZAZA"
suite:
    Next
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Bonjour,

essaye ceci :
Code:
Dim i As Integer
For i = 3 To Worksheets.Count
   Worksheets(i).CommandButton1_Click
Next i

attention les procédures doivent être publiques, enlève le "private" devant les déclarations...
et si pas de bouton et ou pas de code... plantage...


bonne journée
@+

Edition : bonjour Gilbert:)
 
Dernière édition:

zeltron

XLDnaute Occasionnel
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Bonjour Gilbert et Pierrot,

Merci pour votre retour, je regarde vos propositions et reviens vers vous.

Pierrot, pour être publiques, il faut que j'enlève "le private" devant les déclarations, mais ces dernières peuvent toujours rester au niveau de la feuille, pas de nécessité, de les mettre dans un module??


Merci


Zeltron
 

Pierrot93

XLDnaute Barbatruc
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Re,

Pierrot, pour être publiques, il faut que j'enlève "le private" devant les déclarations, mais ces dernières peuvent toujours rester au niveau de la feuille, pas de nécessité, de les mettre dans un module??

oui, mais si même code préférable de le placer dans un modulte standard, tu ne l'auras qu'une seule fois à modifier le cas échéant... comme le propose gilbert:) du reste...
 

zeltron

XLDnaute Occasionnel
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Merci pour vos solutions. Celle de Pierrot me convient mieux car les macro sont différentes suivants les feuilles.
Egalement j'ai du rajouter "activate pour que cela ne buggue pas:

For i = 3 To Worksheets.Count
Worksheets(i).Activate
Worksheets(i).CommandButton1_Click
Next i


Merci encore

Cordialement

Zeltron
 

Pierrot93

XLDnaute Barbatruc
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Bonjour,

cela boguait à cause des "select", les supprimer en modifiant comme suit :
Code:
Sub CommandButton1_Click()
    With Range("E1").Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With

    Range("E1").FormulaR1C1 = "ZAZA"
End Sub

bon après midi
@+
 

gilbert_RGI

XLDnaute Barbatruc
Re : Lancer les macros de "CommandButton1" sur tous les feuilles sauf les 2 premieres

Merci pour vos solutions. Celle de Pierrot me convient mieux car les macro sont différentes suivants les feuilles.
Egalement j'ai du rajouter "activate pour que cela ne buggue pas:

For i = 3 To Worksheets.Count
Worksheets(i).Activate
Worksheets(i).CommandButton1_Click
Next i


Merci encore

Cordialement

Zeltron

et à condition que les deux feuilles qui n'ont pas de boutons soient 1 et 2 ce qui n'est pas le cas dans l'exemple fourni
 

Discussions similaires