Macro sur selection onglet
Résolu
Bonjour,
Quelqu'un pourrait-il me donner la bonne syntaxe pour exécuter, en VBA, une macro lors de la sélection d'une feuille (onglet) de classeur.
pour donner ceci:
si feuil1 est sélectionnée alors => exécute macro 1
si feuil2 est sélectionnée alors => exécute macro 2
if this worsheet.select= ("feuil1") then.....?
en fait, dans le code vba, je dois reconnaitre quelle feuille est sélectionnée.
merci pour votre aide
Christophe
Quelqu'un pourrait-il me donner la bonne syntaxe pour exécuter, en VBA, une macro lors de la sélection d'une feuille (onglet) de classeur.
pour donner ceci:
si feuil1 est sélectionnée alors => exécute macro 1
si feuil2 est sélectionnée alors => exécute macro 2
if this worsheet.select= ("feuil1") then.....?
en fait, dans le code vba, je dois reconnaitre quelle feuille est sélectionnée.
merci pour votre aide
Christophe
5 réponses
-
ContributeurBonjour
la macro N est déclenchée quand tu sélectionnes la feuillePrivate Sub Worksheet_Activate() macroN End Sub
macro a placer dans le module feuille concerné et non dans module1 -
Merci Michel de t' être arrété sur mon poste. Effectivement de cette manière ça marche trés bien mais cela m'impose de mettre le script d'une macro conséquente dans chaque feuilles.
ce que j'ai c'est un bouton dans chaque feuilles qui execute une macro quasi identique avec une seule instruction diffèrente en fonction de la feuille sélectionnée.
Ce que je souhaiterais c'est d'avoir une macro dans laquelle on identifie la feuille sélectionnée avant de poursuivre.
je clic sur feuil1, la macro fait:si je suis dans feuil1 je fais ceci, si je suis dans feuil2 je fais cela, si je suis dans feuil3 je fais ça.
je clic sur feuil2, la macro fait:si je suis dans feuil1 je fais ceci, si je suis dans feuil2 je fais cela, si je suis dans feuil3 je fais ça.
je clic sur feuil3, la macro fait:si je suis dans feuil1 je fais ceci, si je suis dans feuil2 je fais cela, si je suis dans feuil3 je fais ça.
donc un module commun à tous le classeur qui s'executera en fonction de la feuille sélectionnée.
J'espère avoir été un peu plus précis dans ma question et que tu pourras toujours m'aider
Merci -
Contributeurok,
Combien as tu d'onglets ? -
ModérateurBonjour
Tu peux mettre une variable sur le nom de ta feuille :
Sub feuilles() Dim feuille As String feuille = ActiveSheet.Name Select Case feuille Case "Feuil1" MsgBox "hello feuille 1" Case "Feuil2" MsgBox "hello feuille 2" Case "Feuil3" ... Case "Feuil4" ... End Select End Sub--
m@rina
- "Sur le forum bureautique, on pose des questions concernant la bureautique..."
- "Ah bon ???" -
Merci Marina et Michel , mon "problème" est maintenant résolu, j'ai mis un Call feuilles en Worksheet_Activate() de chaque feuilles et ma macro commune à tous les onglets dans un module.
merci