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

koko_spv89

XLDnaute Occasionnel
Bjr à tous!

Sur mon fichier excel j'ai une case [ext_tempo] que je remplie avec un menu déroulant. Si dans cette case j'ai "action immédiate" alors ça vient cocher une série de checkbox :
Code:
If Not Application.Intersect(Target, Range("ext_tempo")) Is Nothing Then
If [ext_tempo] = "Action immédiate" Then
    Call Chbx(1, 1)
    Call Chbx(4, 4)
    Call Chbx(7, 7)
          ...
    [DureeAI] = InputBox("Qu'elle est la durée en minutes de la phase ''réaction immédiate''?")
End If
End If

Si dans cette même case j'ai "temporisation" ou "extinction" ou "tremporisation finale" je viens selectionner autre choses dans une seconde case qui me fait la même chose sur la même feuille : la case I3:
Code:
Private Sub worksheet_change(ByVal Target As Range)
    If Target.Address = "$I$3" Then
        Select Case Target
            Case "1"
                Call Chbx(1, 11)
            Case "2", "4", "7", "8", "11"
                Call Chbx(1, 12)
        End Select
    End If

Je voudrais que lorsque dans [ext_tempo] je viens modifier "action immédiateé en autre chose toutes les checkbox se décochent. j'ai donc fait ça:
Code:
If Not Application.Intersect(Target, Range("B3")) Is Nothing Then
If [ext_tempo] <> "Action immédiate" Then decocher_chbx
End If
avec
Code:
Sub decocher_chbx()
Dim x As OLEObject, i As Byte

For Each x In Sheets("Schéma").OLEObjects
    If TypeOf x.Object Is msforms.CheckBox Then
    x.Object.Value = False
    x.Object.BackColor = -2147483628
    x.Object.BackStyle = 0
    End If
Next x

End Sub

sauf que des que je change "temporisation" pour "extinction" toutes les cases se décochent aussi.... alors que moi je veux qu'elles se décochent que lorsque "action immédiate" disparait............

comment faire ?🙁
 
Re : worksheet_change

Bonsoir,


il faut que tu garde l'ancienne valeur, pour cela :

1. créer un variable publique pour mémoriser la valeur avant la modif
2. mémoriser la valeur "avant avec Worksheet_SelectionChange (par exemple)
3. test la variable publique (If ValeurAvant = "Action immédiate" Then decocher_chbx) dans worksheet_change

Public ValeurAvant As String

Private Sub Worksheet_SelectionChange(ByVal CelluleEnCours As Range)
'*** Mémoriser valeur cellule avant modif

ValeurAvant = CelluleEnCours.Value


End Sub


Voila le principe

GIBI
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
481
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
318
Réponses
4
Affichages
223
Réponses
14
Affichages
469
Réponses
0
Affichages
566
Retour