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 !
Bonjour,
Vous avez deux macros événementielles très souvent utilisées :
1- On lance la macro quand on clique sur une cellule : Sub Worksheet_SelectionChange
VB:
PrivateSub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count >1ThenExitSub' Ne rien faire si clic sur plusieurs cellules'IfNot Intersect(Target, Range("A1:B10"))IsNothingThen' Lancer macro si cellule dans Range'' CodeEndIfEndSub
2- On lance la macro quand on modifie une valeur dans une cellule : Sub Worksheet_Change
Code:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub ' Ne rien faire si modification de plusieurs cellules'
If Not Intersect(Target, Range("A1:B10")) Is Nothing Then ' Macro lancer si cellule modifiée dans le range'
' La valeur de la cellule modifiée est dans Target'
' Code...
Endif
End Sub
Une autre variante si il y a beaucoup de "ifself" a traiter et qui devrait être plus rapide et plus lisible
VB:
PrivateSub Worksheet_Change(ByVal Target As Range)If Target.Count >1ThenExitSub' Ne rien faire si clic sur plusieurs cellules'
Application.EnableEvents =FalseSelectCaseTrueCaseNot Intersect(Target, Range("D4"))IsNothing
Macro1
CaseNot Intersect(Target, Range("D6"))IsNothing
Macro2
CaseNot Intersect(Target, Range("D8"))IsNothing
Macro3
CaseElse'Macro_XX si besoinEndSelect
Application.EnableEvents =TrueEndSub
Bien penser à prioriser l'ordre des "Case" du plus probable au moins probable pour optimiser le code au maximum 😉
Bonjour Phil,
Dans ce cas on peut être encore plus rapide en analysant Target.Address :
VB:
PrivateSub Worksheet_SelectionChange(ByVal Target As Range)If Target.Count >1ThenExitSub' Ne rien faire si clic sur plusieurs cellules'SelectCase Target.Address
Case"$D$4": Macro1
Case"$D$6": Macro2
Case"$D$8": Macro3
Case"$D$10": Macro4
EndSelectEndSub
Mais le but initial était juste de lancer une macro par clic sur cellule, d'où juste une macro simple.
- 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