Rendre Frame visible avec Checkbox

Bonjour,

Je fais appel à vous car je bloque sur un code que j'aimerais améliorer.

J'ai une USF qui me permet de saisir des données sur l'identité d'une personne par ex

Si c'est la première saisie on affiche juste les Textbox 1 à 3. Si les Textbox 1 à 3 sont renseignés on affiche les frame 1 à 3. (feuille "Vierge")

Les checkbox 1 à 3 permettent d'afficher ou non les frame 1 à 3.

Je voudrais qu'à l'ouverture les checkbox 1 à 3 soient cochés par défaut dès lors qu'on a renseigné les textbox1 à 3, comment faire s'il vous plait ?

On déverse les données de F2 à P2 quand on clique sur "Valider.

Si une valeur est déjà présente dans en F2 alors on l'affiche toutes les infos à l'ouverture de la USF pour être éventuellement modifiés (feuille "Renseigné")

Merci beaucoup !

PS: Je joins mon fichier pour que vous puissiez y jeter un œil :)

13masquage.xlsm (50.06 Ko)

JB

Bonjour, dans le même code qui vous sert à réafficher les formes :

Une fois que les checkbox sont visibles alors leur valeur = True.

Private Sub TextBox3_Change()
If UserForm1.TextBox1 = "" Or UserForm1.TextBox2 = "" Or UserForm1.TextBox3 = "" Then
    UserForm1.Frame1.Visible = False
    UserForm1.Frame2.Visible = False
    UserForm1.Frame3.Visible = False
    UserForm1.CheckBox1.Visible = False
    UserForm1.CheckBox2.Visible = False
    UserForm1.CheckBox3.Visible = False

Else

    UserForm1.Frame1.Visible = True
    UserForm1.Frame2.Visible = True
    UserForm1.Frame3.Visible = True
    UserForm1.CheckBox1.Visible = True
    UserForm1.CheckBox2.Visible = True
    UserForm1.CheckBox3.Visible = True

    CheckBox1.Value = True
    CheckBox2.Value = True
    CheckBox3.Value = True

End If
End Sub

Bonjour Xmenpl,

Merci beaucoup pour votre réponse. Ça fonctionne bien à l’initialisation de la USF si les cellules F2 à P2 sont vides.

Par contre si ces cellules sont déjà remplies, j'aurais voulu reprendre l'état des checkbox au moment de la validation du formulaire.

Par exemple au moment de la validation, si elle sont cochées, on met "OK" en cellules N2 (pour checkbox1) ou O2 (pour checkbox2) ou P2 (pour checkbox3). En ce moment tout réapparait coché par défaut à l'initialisation de la USF en raison du code

CheckBox1.Value = True
CheckBox2.Value = True
CheckBox3.Value = True

Comment adapter le code ci-dessus svp car là je ne vois pas comment procéder ?

Merci :)

JB

checkbox usf

Dans votre code Bouton valider ; vous avez oubliez de mettre "=True" sur les trois dernières Checkbox

   Range("F2") = UserForm1.TextBox1
    Range("G2") = UserForm1.TextBox2
    Range("H2") = UserForm1.TextBox3
    If UserForm1.CheckBox1 = True Then Range("J2") = UserForm1.TextBox4
    If UserForm1.CheckBox2 = True Then Range("K2") = UserForm1.TextBox5
    If UserForm1.CheckBox3 = True Then Range("L2") = UserForm1.TextBox6
    If UserForm1.CheckBox1 Then Range("N2") = "OK"
    If UserForm1.CheckBox2 Then Range("O2") = "OK"
    If UserForm1.CheckBox3 Then Range("P2") = "OK"

Nota les Codes lancés à partir du userform n'ont pas besoin de l'indication Userform1......

Private Sub CommandButton1_Click()

If TextBox1 = "" Then
MsgBox "remplir nom"
Exit Sub
End If

If CheckBox1 = True And TextBox4 = "" Then
MsgBox "remplir jour de naissance"
Exit Sub
End If

If CheckBox2 = True And TextBox5 = "" Then
MsgBox "remplir mois de naissance"
Exit Sub
End If

If CheckBox3 = True And TextBox6 = "" Then
MsgBox "remplir année de naissance"
Exit Sub
End If

    Range("F2") = TextBox1
    Range("G2") = TextBox2
    Range("H2") = TextBox3
    If CheckBox1 = True Then Range("J2") = TextBox4
    If CheckBox2 = True Then Range("K2") = TextBox5
    If CheckBox3 = True Then Range("L2") = TextBox6
    If CheckBox1 = True Then Range("N2") = "OK"
    If CheckBox2 = True Then Range("O2") = "OK"
    If CheckBox3 = True Then Range("P2") = "OK"

    Unload Me

End Sub

Bonjour Xmenpl,

Merci pour votre retour, d'ailleurs j'ai une question à ce sujet: Lorsque l'on souhaite sélectionner un textbox dans une multipage, faut-il préciser le numéro de la page sur laquelle il se trouve ? Par exemple:

UserForm1.MultiPage1.Pages(0).Textbox1.Caption="TEST"
'ou
UserForm1.Textbox1.Caption="TEST"

Merci pour votre éclaircissement !

JB

Bonjour, normalement si vous n'avez pas touché à la numérotation des Textbox.

Vous ne devez pas avoir deux textbox avec le même numéro. il n'est donc pas utile de préciser userform1 et multipage 1

A nouveau,

Effectivement les numéros de Textbox s'incrémente à chaque fois. Je voulais juste m'assurer de l’écrire correctement !

C'est parfait !

Merci beaucoup !

JB

Rechercher des sujets similaires à "rendre frame visible checkbox"