Déclancher une macro juste a la sélection d'un plage

Bonjour,

je veux savoir comment spécialisé l'execution le code :

Private Sub Worksheet_Activate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
End Sub

Private Sub Worksheet_Deactivate()
Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End Sub

juste quand je clique dans la liste cité en couleur jaune dans la feuil 2 ( liste déroulante défini par le nom : NOM) ?

Merci

5classeur1.xlsm (13.96 Ko)

Bonjour,

à mettre dans le code de Feuil2:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("NOM")) Is Nothing Then
    'code de la macro à exécuter
End If
End Sub

Se déclenche quand la sélection change, regarde si la cellule sélectionnée se trouve dans la plage portant le nom "NOM", si c'est le cas exécute le code se trouvant entre le If et le End If, là où j'ai écrit "code de la macro à exécuter"

J'ai mettez ce code comme vous me dit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("NOM")) Is Nothing Then
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"

End If
End Sub

le ruban de la feuil2 est masqué complètement et il ma afficher erreur 1004

Juste pour être sûr:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("NOM").Cells) Is Nothing Then
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"

End If
End Sub

Il y a un souci avec le nom "NOM", vous me dites qu'il fait référence à la liste jaune dans Feuil2, mais il fait référence à une plage en Feuil3, d'où l'erreur.

Aussi, il faut désactiver les autres évènements (activate et desactivate), sinon ils masqueront le ruban.

SVPL, pouvez vous m'envoyer le fichier où le code complet ici

j'ai toujours Erreur

SVPL, Quelqu'un me rependre?

Voilà le fichier que tu avais envoyé.

1classeur1-3.xlsm (13.96 Ko)

Oui ça j'ai le

pouvez vous m’intégrer la macro ? puisque moi toujours affiche mois erreur

merci

Bonjour,

voilà

8classeur1-3.xlsm (16.26 Ko)

PS: vos messages sont difficiles à comprendre...

Vraiment je m’excuse pour ma français

Alors pour le Code j'ai remplacer votre code

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("NOM").Cells) Is Nothing Then
    Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"

End If

par le code suivant

If Not Intersect(Range("NOM"), Target) Is Nothing And Target.Count = 1 Then
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
   Else
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End If

comme ça j"ai atteindre mon but

Merci bien pour votre aide, je suis vraiment comptant avec ce forum

en résume

mon code définitive pour masquer la barre d"outils a la sélection d'un plage des cellule définis par un nom est comme suite

'Private Sub Worksheet_Activate()
'Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
'End Sub
'
'Private Sub Worksheet_Deactivate()
'Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
'End Sub
'
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("NOM"), Target) Is Nothing And Target.Count = 1 Then
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"
   Else
  Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)"
End If
End Sub

Merciiiiiiiiiiii

Bonjour,

Content d'avoir pu aider!

Vous pouvez supprimer le code mis en commentaire (qui apparait en vert) si vous le souhaitez, comme de toute façon il n'est plus exécuté...

Merci d'avoir passé le sujet en résolu!

Rechercher des sujets similaires à "declancher macro juste selection plage"