MacroEvenementielleSelonValCell

  • Initiateur de la discussion Initiateur de la discussion Moa
  • 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 !

M

Moa

Guest
Salut à tous !

Voilà, j'ai un problème avec une macro évènementielle:

En E3, j'ai une liste déroulante, avec trois choix : 1,2,3

J'ai trois macros appelées macro1, macro2, macro3.

Et j'aimerais que lorsque je sélectionne "1" en E3 alors que "Macro1" s'exécute et idem pour le 2 et le 3.

Voilà mon code :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("E3")) Is Nothing Then
If ActiveCell.Value = 1 Then Call Macro1
If ActiveCell.Value = 2 Then Call Macro2
If ActiveCell.Value = 3 Then Call Macro3
End If
End Sub

Et quand je clique dans la cellule, je n'ai pas le temps de sélectionner un chiffre, que la macro s'exécute, selon le dernier chiffre en mémoire.

J'ai essayé aussi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell(3, 5).Value = 1 Then Call Macro1
If ActiveCell(3, 5).Value = 2 Then Call Macro2
If ActiveCell(3, 5).Value = 3 Then Call Macro3
End Sub

Mais là, rien ne se passe...!!!

J'ai essayé aussi :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = "$E$3" Then
If ActiveCell.Value = 1 Then Call Macro1
If ActiveCell.Value = 2 Then Call Macro2
If ActiveCell.Value = 3 Then Call Macro3
End If
End Sub

Mais, là, il se passe la même chose que pour le premier code.

J'ai essayé plein de petits codes, mais en vain;

Donc, si un chef du Cba passe par là, ce serait vraiment sympa de me briffer un peu.

Mille merci

@ +

Moa
 
Bonsoir Moa.

Et si tu faisais exactement la même chose, mais avec la macro événementielle Worksheet_Change? Cela permettrait de lancer la macro que lorsque le nouveau chiffre aura été saisi. (par rapport à ton premier code, il faut juste changer activecell par target)

Bonne soirée. Laurent.
 
Selectionner ou taper, pour taper :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
lig = Target.Row
col = Target.Column
If lig = 3 and col = 5 Then
Application.OnKey "1" ,"macro1"
else
Application.OnKey "1"
end if

end sub

essaye celà

Cordialement
 
Salut LaurentBT !

Merci à toi.

J'avais en effet essayé avec Worksheet_Change, et cela ne fonctionnait pas.

Mais par contre avec Target à la place de "ActiveCell.Value", cela marche impec.

Donc en résumé la bonne macro devient :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e3")) Is Nothing Then
If Target.Value = 1 Then Call Macro1
If Target.Value = 2 Then Call Macro2
If Target.Value = 3 Then Call Macro3
End If
End Sub

Par contre dans mon appli réelle, j'ai trois listes de choix et donc neuf macros s'y afférant.

J'ai donc fait des tests avec une deuxième liste de choix et trois autres macros, et voilà ce que ça donne..et surtout..ça marche...héhéhé!

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e3")) Is Nothing Then
If Target.Value = 1 Then Call Macro1
If Target.Value = 2 Then Call Macro2
If Target.Value = 3 Then Call Macro3
End If
If Not Intersect(Target, Range("G3")) Is Nothing Then
If Target.Value = 1 Then Call Macro4
If Target.Value = 2 Then Call Macro5
If Target.Value = 3 Then Call Macro6
End If
End Sub


Donc mille merci à toi LaurentBT...!!

@ +

Moa
 
- 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
41
Affichages
889
Réponses
9
Affichages
404
Réponses
14
Affichages
332
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
10
Affichages
533
Retour