VBA macro quand cellule sélectionnée

[Résolu/Fermé]
Signaler
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
-
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
-
Bonjour,

Savez-vous lancer une macro à la sélection d'une cellule?

Au préalable , dans la Feuil2 par exemple je nomme une cellule TOTO

Donc, il faudrait que lorsque je sélectionne TOTO, la macro TITI s'éxécute.

Merci pour votre aide.

3 réponses

Messages postés
17497
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 août 2021
4 697
Salut,

cela devrait le faire

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [toto]) Is Nothing Then
Call titi
End If
End Sub

1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
240
super merci, ça fonctionne.

Pourrais-tu compléter cette macro ?
si toto ou titi n'existe pas => pas d'erreur
Messages postés
17497
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 août 2021
4 697
Re,

en début de procédure tu peux mettre une gestion d'erreur
On Error Resume Next
qui évitera un plantage dans le cas d'une erreur dans le code mais sera inefficace dans le cas d'absence de la plage nommée, dans ce cas dès que tu changeras de position dans ton tableau le code s'activera.
dans le cas d'absence de macro je ne vois pas, je regarde si cela est faisable
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
240
Je n'arrive pas à mettre plusieurs fois cette macro dans une feuille
par exemple:

toto lance titi
et
tutu lance tyty
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
240
j'ai finalement fait comme ça

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [toto]) Is Nothing Then
Call titi

Else

If Not Intersect(Target, [tutu]) Is Nothing Then
Call tyty

End If
End If
End Sub
Messages postés
17497
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
29 août 2021
4 697
Re,

depuis la cellule nommée "toto", que veux tu faire exactement
si tu dois lancer plusieurs codes tout dépend des fonctions de chacun, peut être faire comme avec les formules utiliser les conditionnelles comme If ou And ou Or ou Else imbriqué dans un If
Messages postés
600
Date d'inscription
dimanche 8 novembre 2009
Statut
Membre
Dernière intervention
21 juin 2015
240
J'utilise les noms de cellules toto et tutu pour faire des liens hypertextes dans un autre fichier :

le fichier s'ouvre et différentes lignes sont masquées en fonction du lien utilisé.

monlien#toto => lance la macro titi (par exemple cache les ligne de 1 à 10)
ou
monlien#tutu => lance la macro tyty (par exemple cache les lignes de 10 à 20)

ça fonctionne très bien, à condition que les cellules toto et tutu ne soient pas dans les zones à cacher.