Plusieurs feuilles une macro...

  • Initiateur de la discussion Seb
  • Date de début
S

Seb

Guest
Bonjour,
est-ce qu'il est possible de mettre la même macro à plusieurs feuilles sans avoir à la recopier dans chaque feuille ?
Merci.
 
@

@+Thierry

Guest
Salut Seb

Oui c'est possible, mais faut encore qu'on parle de la même chose, vu le peu d'info que tu laisses...

Exemple
Private Module Sheet1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Toto
End Sub

Private Module Sheet2 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Toto
End Sub

Private Module Sheet3 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Toto
End Sub

Private Module Sheet4 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Toto
End Sub


Module Standard Module1
Sub Toto ()
MsgBox "Bonjour, je suis la macro Toto, lancée à chque changement de sélection dans les Feuilles"
End Sub


QUOIQUE !!! pour cet évènement précis on pourrait faire ceci aussi :

Private Module ThisWorkbook :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
MsgBox "Bonjour, moi je suis lancée à chaque changement de sélection dans toutes les feuilles du classeur..."
End Sub


Bonne Appétit
@+Thierry


PS si tu parles d'autre chose que de macros évènementielles je n'ai pas compris ta question succincte.
 
S

Seb

Guest
Merci, je vais essayer d'un peu mieux expliquer.
Dans mon classeur, j'ai 2 feuilles qui ont la même macro, en fait ces 2 feuilles sont des copies et ce qui les différencie ce sont les données à l'intérieur. Mais, il y a aussi d'autres feuilles dans le classeur (donc je pense que la deuxième méthode ne marche pas pour moi).
Je ne sais pas ce qu'est une macro évenementielle mais si ce sont des macros qui commencent par "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" alors oui c'est des macros évenementielle.
Pour la première méthode, j'écris
Private Module Sheet1 :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Toto
End Sub
dans le code de la feuille 1 mais je ne sais pas où mettre
Module Standard Module1
Sub Toto ()
MsgBox "Bonjour, je suis la macro Toto, lancée à chque changement de sélection dans les Feuilles"
End Sub
?
Merci et bon apétit à toi aussi.
 
@

@+Thierry

Guest
Re Seb, le Forum

Pour ce qui est des macro évènementielles, c'est justement l'exemple que je t'ai donné.

Les macros évènementielles, comme leur nom l'indiquent se déclenchent en fonction d'un évènement....

Worksheet_SelectionChange <= Est un évènement (quand on change de sélection dans la feuille en question)

Worksheet_BeforeRightClick <= est un évènement (quand on fait un click droit dans la feuille en question)

Contrairement aux macros évènementielles une macro standard se déclenche soit par activation d'un bouton, soit étant appellée elle-même par une macro évènementielle... (Exemple ci-dessus)

Pour faire une macro normale (non privée dans un private module) il faut la mettre dans un module standard...

Tu dois, au préalable, en créer un :

Dans l'Editeur Visual Basic (VBE) (ALT + F11 depuis Excel)
Soluce 1
Menu => Insertion => Module


Soluce 2
Barre d'outils standard => 2em bouton => Flèche déroulante => Module


Soluce 3
Tu enregistres une macro depuis Excel et tu auras aussi un Module Standard.

Pour voir les modules par l'explorateur de projet, une fois dans VBE tu fais CTRL + R, ou encore Menu => Affichage => Explorateur de Projets

Voilà en espérant que celà puisse t'aider à comprendre.

Bonne aprèm
@+Thierry
 

Statistiques des forums

Discussions
314 655
Messages
2 111 603
Membres
111 217
dernier inscrit
aladinkabeya2