Magic_Doctor
XLDnaute Barbatruc
Bonjour,
Sur ma feuille j'ai une cellule ("C9") dans laquelle je rentre soit 0, soit une valeur <> 0.
Ailleurs, sur la même feuille, j'ai une cellule ("B11") qui déclenche, lorsque l'on clique dessus, une macro événementielle qui n'est opérationnelle que si dans la cellule précédente il y a une valeur > 0 (si 0, cellule bloquée) ; autrement dit :
- si [C9] = 0 --> la macro événementielle est bloquée,
- si [C9] <> 0 --> la macro événementielle est opérationnelle.
GESTION DE L'AFFAIRE :
- module de feuille :
- module standard :
En conséquence :
- je clique une première fois sur la cellule "B11" --> compt1 = 1 + blablabla
- je clique à nouveau sur la même cellule --> compt1 = 2 + chabada
Maintenant, je rentre la valeur 0 dans la cellule "C9" (ce qui va fatalement bloquer la macro événementielle).
Si, avant de rentrer cette valeur compt1 = 1 --> pas de problème par la suite.
En revanche si compt1 = 2 --> problème par la suite.
Ce que je voudrais, c'est quand on met 0 et que compt1 = 2, automatiquement compt1 = 1.
J'ai essayé depuis un bon moment, mais n'y suis pas parvenu.
Merci d'avance pour tout conseil.
Sur ma feuille j'ai une cellule ("C9") dans laquelle je rentre soit 0, soit une valeur <> 0.
Ailleurs, sur la même feuille, j'ai une cellule ("B11") qui déclenche, lorsque l'on clique dessus, une macro événementielle qui n'est opérationnelle que si dans la cellule précédente il y a une valeur > 0 (si 0, cellule bloquée) ; autrement dit :
- si [C9] = 0 --> la macro événementielle est bloquée,
- si [C9] <> 0 --> la macro événementielle est opérationnelle.
GESTION DE L'AFFAIRE :
- module de feuille :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [B11]) Is Nothing Then
If [C9] = 0 Then Exit Sub 'pour rendre inopérationnelle la macro événementielle
Application.ScreenUpdating = False
Sheets("BTX").Unprotect MotDePasse
Modif_Cel_Reconstitution
Sheets("BTX").Protect MotDePasse, True, True, True
[AZ1].Select: Application.ScreenUpdating = True
End If
End Sub
VB:
Sub Modif_Cel_Reconstitution()
'job75
compt1 = IIf(IsNumeric(Evaluate("Compteur1")), Evaluate("Compteur1"), 0)
compt1 = IIf(compt1 < 2, compt1 + 1, 1)
ActiveWorkbook.Names.Add Name:="Compteur1", RefersTo:=compt1, Visible:=False
If compt1 = 1 Then
blablabla
else
chabada
endif
End Sub
- je clique une première fois sur la cellule "B11" --> compt1 = 1 + blablabla
- je clique à nouveau sur la même cellule --> compt1 = 2 + chabada
Maintenant, je rentre la valeur 0 dans la cellule "C9" (ce qui va fatalement bloquer la macro événementielle).
Si, avant de rentrer cette valeur compt1 = 1 --> pas de problème par la suite.
En revanche si compt1 = 2 --> problème par la suite.
Ce que je voudrais, c'est quand on met 0 et que compt1 = 2, automatiquement compt1 = 1.
J'ai essayé depuis un bon moment, mais n'y suis pas parvenu.
Merci d'avance pour tout conseil.
Dernière édition: