Microsoft 365 décocher un checkbox vba si

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

gothc

XLDnaute Occasionnel
Bonsoir le forum
j'ai une macro ci joint je cherche comment décocher ma checkbox si ma combobox est vide
j'ai trouvé comment avoir un message si ma combobox est vide mais la case reste cocher
merci de votre aide pour info je travaille sur la feuil
VB:
Private Sub CheckBox1_Click()
If ComboBox1.Value = "" Or ComboBox1.Value = "" Then MsgBox ("Vous devez sélectionner votre Nom dans la Liste déroulante.") ': Exit Sub

Worksheets("Paramètres_Application").Range("r2") = Abs(Me.CheckBox1)
CheckBox1.Caption = Worksheets("Paramètres_Application").Range("s2")
If CheckBox1.Value = True Then
   Worksheets("Paramètres_Application").Range("u2") = Date
Else
     Worksheets("Paramètres_Application").Range("u2") = ""
End If

End Sub
 
Bonsoir gothc
Bonsoir le Fil ,le Forum
Pas de fichier ?
Tout ce matériel ce trouve sur une Feuille (pas dans un Userform)
VB:
Private Sub CheckBox1_Click()
Worksheets ("Paramètres_Application")
   If .ComboBox1.Value = "" Then MsgBox ("Vous devez sélectionner votre Nom dans la Liste déroulante."): Exit Sub
      .Range("r2") = Abs(Me.CheckBox1)
      .CheckBox1.Caption = .Range("s2")
      .Range("u2") = IIf(.CheckBox1.Value = True, Date, Empty)
End With
End Sub
Rien compris , mais Bon Lol
Bonne fin de Soirée
jean marie
 
Bonsoir.
Rien compris , mais Bon Lol
Explication: En VBA tout comme dans les formules Excel, lorsqu'un Boolean est impliqué dans une opération arithmétique il est converti en nombre. Mais à la différence d'Excel True devient -1 et non 1. Pour obtenir 1, un signe '-' devant Me.CheckBox1.Value conviendrait aussi bien que Abs(Me.CheckBox1.Value)
Remarque: Il n'est jamais utile de mettre = True derrière une expression Boolean, car la nouvelle expression Boolean ainsi formée a toujours la même valeur que l'expression seule.
Et au lieu de Expression = False, préférez Not Expression, c'est mieux.
 
Dernière édition:
Bonjour gothc
Bonjour Bernard ,le Forum
merci pour ces éclairages que je vais mettre en pratique !
j'e pensais que :
VB:
If ChexkBox1=True Then
'était plus explicite que
If CheckBox1 Then
gothc ! je regarde ton Fichier .
Bonne Journée
jean marie
 
Re
ce que j'ai modifié
Code:
Private Sub CheckBox1_Click()
With Worksheets("Paramètres_Application")
   If ActiveSheet.ComboBox1.Value = "" Then MsgBox ("Vous devez sélectionner votre Nom dans la Liste déroulante."): Exit Sub
      .Range("r2") = -ActiveSheet.CheckBox1
      ActiveSheet.CheckBox1.Caption = .Range("s2")
      .Range("u2") = IIf(ActiveSheet.CheckBox1, Date, Empty)
End With
End Sub
jean marie
 
Dernière édition:
Bonjour jean marie, gothc,

non testé, mais je crois que cette réécriture du code VBA de ton post #10 devrait aller :

VB:
Private Sub CheckBox1_Click()
  Dim sh As Worksheet: Set sh = Worksheets("Paramètres_Application")
  With ActiveSheet
    If .ComboBox1 = "" Then .CheckBox1 = 0: _
      MsgBox "Vous devez sélectionner votre Nom dans la Liste déroulante.": Exit Sub
    With .CheckBox1
      sh.[R2] = Not .Value: .Caption = sh.[S2]: sh.[U2] = IIf(.Value, Date, Empty)
    End With
  End With
End Sub

soan
 
Re
Bonjour Soan
j'espère que tu vas bien ?
ce que j'ai modifié
VB:
Private Sub CheckBox1_Click()
With Worksheets("Paramètres_Application")
   If ActiveSheet.ComboBox1.Value = "" Then
     If Not (ActiveSheet.CheckBox1) Then Exit Sub
            MsgBox ("Vous devez sélectionner votre Nom dans la Liste déroulante.")
            ActiveSheet.CheckBox1 = False
             Exit Sub
    End If
      .Range("r2") = -ActiveSheet.CheckBox1
      ActiveSheet.CheckBox1.Caption = .Range("s2")
      .Range("u2") = IIf(ActiveSheet.CheckBox1, Date, Empty)
End With
End Sub
évite aussi le double affichage du Message!
jean marie
 
- 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

Réponses
13
Affichages
507
Réponses
4
Affichages
360
Réponses
18
Affichages
708
Réponses
7
Affichages
546
Réponses
2
Affichages
403
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
498
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
752
Réponses
6
Affichages
548
Retour