CheckBox & i -> quel est l'écriture exacte?

Excel-lent

XLDnaute Barbatruc
Bonjour le forum, les spécialistes du VBA,

Dans le même style que mon précédent post

J'aurais maintenant besoin du contraire mais n'arrive pas à l'adapter!

Si l'utilisateur a saisie dans la cellule [A1] -> "1", lorsqu'on cliquera sur le bouton "saisie", dans l'Userform apparaissant :
--> la CheckBoxSem1 devra être coché
--> sinon la CheckBoxSem1 devra être décoché

Voici mon code actuel (inspiré de la solution de la dernière fois), mais cela ne fonctionne pas
Code:
Private Sub CommandButtonValidSaisie_Click()
  
  For i = 1 To 9
    If Range("A" & i) = 1 Then
       [COLOR="Red"][U]Controls("CheckBoxSem" & i).Value[/U][/COLOR] = True
    Else
       [COLOR="Red"][U]Controls("CheckBoxSem" & i).Value[/U][/COLOR] = False
  Next i

  Unload SaisieHoraires
End Sub

Lieu de l'erreur à mon avis.

Merci d'avance pour vos réponses
 

Pièces jointes

  • CheckBox avec variable.zip
    20.7 KB · Affichages: 27

Excel-lent

XLDnaute Barbatruc
Re : CheckBox & i -> quel est l'écriture exacte?

Bonjour,

Problème résolu entre temps.

La macro était juste mais au mauvaise endroit!

Il fallait la mettre dans :
Private Sub UserForm_Initialize()

et non pas :
Private Sub CommandButtonValidSaisie_Click()

Merci quand même à tous.
 

Excel-lent

XLDnaute Barbatruc
Re : CheckBox & i -> quel est l'écriture exacte?

Bonsoir Soenda,

Tout d'abord, un grand merci pour ta proposition.

Je disais sur un autre fil que je ne comprenais pas ceci.

Code:
For i = 1 To 9
    Controls("CheckBoxSem" & i).Value = [COLOR="Red"][B]([/B][/COLOR]Range("A" & i) [COLOR="Red"][B]= 1)[/B][/COLOR]
next i

Mais c'est bon, j'ai compris la subtilité. Ton code est vraiment sympa et très concis.

Pour ceux qui lirait ce post, intéressé par la solution mais ne la comprennant pas, voici plus de détail :

Quasiment le même code en légèrement plus détaillé :
Code:
For i = 1 To 9
   Controls("CheckBoxSem" & i).Value = IIf(Range("A" & i) = 1, [COLOR="Red"][B]1[/B][/COLOR], [COLOR="Blue"][B]0[/B][/COLOR])
next i

La même chose en un peu plus clair :
Code:
For i = 1 To 9
    Controls("CheckBoxSem" & i).Value = IIf(Range("A" & i) = 1, [COLOR="Red"][B]"TRUE"[/B][/COLOR], [COLOR="Blue"][B]"FALSE"[/B][/COLOR])
next i

Toujours la même chose en beaucoup plus clair mais plus long :D :
Code:
For i = 1 To 9
    If Range("A" & i) = 1 Then 
        Controls("CheckBoxSem" & i).Value = [COLOR="Red"][B]True[/B][/COLOR]
    Else
        Controls("CheckBoxSem" & i).Value = [COLOR="Blue"][B]False[/B][/COLOR]
next i

Pour information :
IIF est la contraction de IF - THEN - ELSE - END IF

Bonne soirée à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 107
Membres
103 120
dernier inscrit
83400ren