VBA macro quand cellule sélectionnée

Résolu/Fermé
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - 8 déc. 2011 à 14:17
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - 9 déc. 2011 à 11:50
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.

A voir également:

3 réponses

Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
8 déc. 2011 à 14:49
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
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 8/12/2011 à 15:03
super merci, ça fonctionne.

Pourrais-tu compléter cette macro ?
si toto ou titi n'existe pas => pas d'erreur
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
8 déc. 2011 à 15:42
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
0
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
8 déc. 2011 à 17:06
Je n'arrive pas à mettre plusieurs fois cette macro dans une feuille
par exemple:

toto lance titi
et
tutu lance tyty
0
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
8 déc. 2011 à 17:13
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
0
Mike-31 Messages postés 18346 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 13 novembre 2024 5 104
8 déc. 2011 à 17:59
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
0
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 9/12/2011 à 11:55
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.
0