Macro qui s'execute sur un clic

[Résolu/Fermé]
Signaler
-
 shad -
Bonsoir,

j'aimerai créer une macro qui s'execute en cliquant sur une cellule mais je n'y arrive pas ..
j'ai deux listes déroulantes dans deux cellules différentes. je veux en cliquant sur une cellule, la macro efface l'affichage de la deuxième cellule sans changer le contenu de la liste

merci d'avance.

4 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 504
bonjour

en cliquant sur une cellule

Il faut utiliser la macro événementielle "selectionchange" en gérant les cellules concernées.

Si tu pouvais nous mettre un exemple sans éléments personnels mais avec la structure des données sur https://www.cjoint.com/ puis nous mettre le lien généré ici ce serait plus facile.
merci pour la réponse, voici le lien vers le fichier

http://cjoint.com/?BBiwOfbQsWr
Messages postés
17533
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 septembre 2021
4 723
Salut le fil,

deux codes à tester et à coller dans les propriétés de la feuille, clic droit sur l'onglet de feuille/Visualiser le code
le premier se déclenche sur un double clic et le second sur un clic droit au choix

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Union([F4], [F6])) Is Nothing Then
If ActiveCell.Address(0, 0) = "F4" Then [F6].ClearContents
If ActiveCell.Address(0, 0) = "F6" Then [F4].ClearContents
End If
End Sub

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Union([F4], [F6])) Is Nothing Then
If ActiveCell.Address(0, 0) = "F4" Then [F6].ClearContents
If ActiveCell.Address(0, 0) = "F6" Then [F4].ClearContents
End If
End Sub
merci c'est sympa..

j'ai un petit souci..c'est que celui qui vient après moi ne sais pas forcement qu'il doit faire un click droit ou un double click

y a un moyen d'éviter ça ? cad exécuter la macro avec un click de selection simple ?

merci
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 504
bonjour Mike, shad,

Ou bien si j'ai compris correctement la question, comme ceci :

Private Sub Worksheet_SelectionChange(ByVal sel As Range)
    If Not Intersect(sel, [F4]) Is Nothing Then [F6].ClearContents
End Sub
Messages postés
17533
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
14 septembre 2021
4 723
Re,

comme cela

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Union([F4], [F6])) Is Nothing Then
If ActiveCell.Address(0, 0) = "F4" Then [F6].ClearContents
If ActiveCell.Address(0, 0) = "F6" Then [F4].ClearContents
End If
End Sub
:) merci Mike-31

ça maaarche !!! c'est cool

merci bien