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

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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. 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
      1. Modérateur
        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 ???"
        1. 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