Macro sur selection onglet

Résolu/Fermé
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 18 mai 2011 à 14:23
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 - 20 mai 2011 à 08:04
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


A voir également:

5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
18 mai 2011 à 17:09
Bonjour
la macro N est déclenchée quand tu sélectionnes la feuille
Private Sub Worksheet_Activate()
macroN
End Sub


macro a placer dans le module feuille concerné et non dans module1
1
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
19 mai 2011 à 08:46
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
19 mai 2011 à 09:27
ok,

Combien as tu d'onglets ?
0
m@rina Messages postés 20065 Date d'inscription mardi 12 juin 2007 Statut Contributeur Dernière intervention 23 avril 2024 11 271
19 mai 2011 à 10:35
Bonjour

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 ???"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
renoncule62 Messages postés 83 Date d'inscription vendredi 25 janvier 2008 Statut Membre Dernière intervention 1 juillet 2012 2
20 mai 2011 à 08:04
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
0