Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

soenda

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

Bonsoir le fil, Excel-lent

On peut aussi écrire
Code:
For i = 1 To 9
    Controls("CheckBoxSem" & i).Value = (Range("A" & i) = 1)
next i
A plus
 

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…