Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 ,
comment lancer l'exécution d'une macro12 une seule fois après le changement
de la cellule C26 de la feuille1 ? Si après cette exécution l'on change la cellule C26 ne pas lancer la macro12.
peut être en utilisant une variable "static", si j'ai bien compris.... exemple ci-dessous :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Static b As Boolean
If b = True Or Target.Address <> "$C$26" Then Exit Sub
b = True
Target.Interior.ColorIndex = 3
End Sub
Pierrot, je ne maîtrise pas bien les variables Static mais je suppose qu'elles se réinitialisent à chaque fermeture d'Excel ?
Donc à priori, je ne vois qu'une solution : Dans une cellule (pour l'exemple, AA1) écrire FAUX
à la première modification de C26, lancer macro12 puis mettre VRAI dans la cellule
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("AA1").value = True Or Target.Address <> "$C$26" Then Exit Sub
Range("AA1").value = True
Call macro12
End Sub
Insérer le nom Etat_C26 avec la valeur =0. (Menu Insertion/Nom/définir...)
Écrire le code suivant :
Code:
[COLOR="DarkSlateGray"][B][COLOR="SeaGreen"]'Dans le module de la feuille concernée :[/COLOR]
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$26" Then
If ActiveWorkbook.Names("Etat_C26").Value = "=0" Then
bascule_état_C26
macro12
End If
End If
End Sub
Sub bascule_état_C26()
With ActiveWorkbook.Names("Etat_C26")
If .Value = "=1" Then .Value = "=0" Else .Value = "=1"
End With
End Sub
[COLOR="SeaGreen"]'Dans le module de la feuille concernée ou dans un module standard :[/COLOR]
Sub macro12()
MsgBox "macro12 exécutée"
End Sub[/B][/COLOR]
À la première modification de la valeur de la cellule C26, la valeur de Etat_C26 passe à la valeur =1 et la procédure macro12 est exécutée.
Tant que la procédure bascule_état_C26 n'est pas exécutée, les modifications de valeur de la cellule C26 ne déclenchent pas l'exécution de la procédure macro12.
Pour autoriser l'exécution de la procédure macro12, il faut exécuter une fois la procédure bascule_état_C26.
dans la série "je peux, je n'en peux plus" : avec un Contrôle invisible.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$6" Then
If OptionButton1 = True Then Exit Sub
OptionButton1 = True
macro12
End If
End Sub
- 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