Déclenchement Macro Evènementielle + Liste Déroulante

  • Initiateur de la discussion Initiateur de la discussion ljoue
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

ljoue

Guest
Bonjour à tous,

J'ai dans la cellule "A1" un menu déroulant contenant une liste de noms . J'aimerais que lorsque je choisie un autre nom de la liste qu'une macro (Macro1) se déclenche automatiquement.

J'ai essayé avec le code suivant mais sans succès :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Select = "$A$1" Then
Application.Run "Macro1"
End If
End Sub

Quelqu'un aurait-il une solution ?

Merci d'avance.

@+
Laurent
 
Re : Déclenchement Macro Evènementielle + Liste Déroulante

bonjour,

voici une solution


controle de la saisie colonne 1

Private Sub Worksheet_Change(ByVal Cellule As Range)
If Cellule.Column <> 1 Then Exit Sub
'
If Cellule.Value <> "" Then
With Sheets("Feuil2").Range("Valeur")
Set c = .Find(Cellule.Value, LookIn:=xlValues)
If c Is Nothing Then
MsgBox (Cellule.Value & "pas trouvé") ===> appel macro 1
Else
MsgBox (Cellule.Value & "OK")

End If
End With
End If
End Sub

GIBI
 

Pièces jointes

Dernière édition:
Re : Déclenchement Macro Evènementielle + Liste Déroulante

Salut GIBI,

Merci pour ta solution.

En revanche avec cette méthode la macro se déclenche lorsque la valeur de n'importe qu'elle cellule de la colonne A est modifiée et si cette valeur est <> de "".

Solution intéressante mais qui ne s'applique pas ds mon cas.

Merci et @+
 
Re : Déclenchement Macro Evènementielle + Liste Déroulante

Salut ljoue,

je n'ai pas compris ta remarque, pour moi la solution s'applique mais le code est a adapter, par exemple si tu ne veux traiter que la cellule A1 (ligne 1 colonne 1) il suffit de le tester, de remplace le msgbox par un Call TaMacro
si tu veux traiter même en cas d'absence de saisie tu enlève "If Cellule.Value <> "" Then .. else/endif"



de plus, si ta macro modifie une cellule (A1 ou autre) pour éviter de boucler sur l'événement
je t'ai ajouté

Application.EnableEvents = False '**** bloquer les événements le temps du traitemen

Application.EnableEvents = True ' réactiver les événements




Private Sub Worksheet_Change(ByVal Cellule As Range)
If Cellule.Column <> 1 Or Cellule.Row <> 1 Then Exit Sub '<=== cellul # A1
'
Application.EnableEvents = False '**** bloquer les événements le temps du traitemen

If Cellule.Value <> "" Then
With Sheets("Feuil2").Range("Valeur")
Set c = .Find(Cellule.Value, LookIn:=xlValues)
If c Is Nothing Then
MsgBox (Cellule.Value & "pas trouvé")
Else
MsgBox (Cellule.Value & "OK")

End If
End With
else
msgbox ("absence de saisie")
End If

Application.EnableEvents = True ' réactiver les événements

End Sub

Mais je n'ai peut être pas compris ta question
GIBI
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
586
Retour