Bonjour a tous,
J'ai créé un UserForm avec 3 case a coché, un bouton OK et un annulé
Quand je coche les casses ou pas cela écrit les informations correspondant (vrai / faux) dans des cellules
Jusque la cela fonctionne bien
Maintenant j'aimerais qu'a l'ouverture de mon Userform (Initialize), cela cherche les infos disponible dans les mêmes céllules et que cela coche les casses ou pas
Mon code si dessous ne marche pas évidement ...
Merci de votre aide
Private Sub UserForm_Initialize()
'A l'ouverture de l'userform ecrit des valeurs dans les textbox
Dim ESS1 As String
Dim ESS2 As String
Dim ESS3 As String
Re : Initialiser un CheckBox à l'ouverture d'un Userform
Bonsoir.
Maintenant j'aimerais qu'a l'ouverture de mon Userform (Initialize), cela cherche les infos disponible dans les mêmes cellules et que cela coche les casses ou pas
Dans ce cas pourquoi affectez vous aux Value des cellules des variables non initialisées et de surcroit déclarées As String au lieu de As Boolean ? Affectez simplement au contraire directement les Value des cellules aux CheckBox. Dans les cellules, VRAI et FAUX apparaissant en majuscules ne sont pas des textes mais des valeurs logiques.
Re : Initialiser un CheckBox à l'ouverture d'un Userform
Bonsoir à tous
Même piste que Dranreb
Et ci-dessous ma façon de réécrire ton code
(j'ai donc ajouter un CommandButton sur ton userform)
Code:
Private Sub CommandButton1_Click()
With Sheets("Feuil1").Range("G4")
.Value = CheckBox1.Value
.Offset(1) = CheckBox2.Value
.Offset(2) = CheckBox3.Value
End With
Me.Hide
End Sub
PS: Pourquoi tu parles de TextBox dans la lgne de commentaires alors qu'il s'agit de CheckBox ?
Code:
Private Sub UserForm_Initialize()
'A l'ouverture de l'userform ecrit des valeurs dans les textbox
With Sheets("Feuil1").Range("G4")
CheckBox1 = .Value
CheckBox2 = .Offset(1)
CheckBox3 = .Offset(2)
End With
End Sub
Je testerais le code de Staple en fin de semaine
J'avoue quand première aproche mon niveau en VB ne ma permis de tous comprendre mais bon ...
Pourrais tu m'espliquer le code ?
Re : Initialiser un CheckBox à l'ouverture d'un Userform
Bonjour.
Vous avez très bien décrypté mes explications.
La proposition de Staple illustre surtout le fait que vous n'avez pas besoin de variables intermédiaires.
Vous pouvez directement effectuer des affectations dans les deux sens entre les CheckBox et les Value de cellules.
Elle évite en outre deux recherches de feuille dans la collection Sheets du classeur.
Vous pouvez aussi l'éviter par des expressions de la forme Feuil1.[G4].Value si toutefois Feuil1 est bien le nom VBA de la feuille nommée "Feuil1" pour Excel (Vérifier dans l'explorateur de projets, rubrique "Microsoft Excel Objets").
Je testerais le code de Staple en fin de semaine
J'avoue quand première aproche mon niveau en VB ne ma permis de tous comprendre mais bon ...
Pourrais tu m'espliquer le code ?
je vais tenter quand même
Re : Initialiser un CheckBox à l'ouverture d'un Userform
salut
sans With ni Offset (n'est-ce pas Staple )
Code:
Private Sub UserForm_Initialize()
For n = 1 To 3
Me("CheckBox" & n) = Sheets("Feuil1").Cells(3 + n, "G")
Next
End Sub
Private Sub CommandButton1_Click()
For n = 1 To 3
Sheets("Feuil1").Cells(3 + n, "G") = Me("CheckBox" & n)
Next
End Sub