Userform ajout CheckBox

7formulairetest.xlsm (178.27 Ko)

Bonjour la communauté,

Dans le fichier joint, je souhaiterais que si l'une des cases est cochée dans le formulaire, le "caption" se reporte dans le fichier en colonne M (Edit modo).

Merci de votre aide.

Bonjour,

Quelle est votre logique

Si Checkbox cochée, le nom de la checkbox doit être reporté en colonne N !?

image

A+

Bonjour BrunoM45,

Faute de frappe M et non N ;) .

Bonjour La communauté,

Je me permet de relancer pour de l'aide.

Bonjour

dans la procédure CommandButton3_Click

ajouter la ligne

If CheckBox1.Value = True Then Range("M" & L).Value = CheckBox1.Caption

Bonjour Scraper,

Cela ne fonctionne pas.

Je me suis peut être mal exprimé, je souhaite que si l'une des 3 CheckBox est cochée, le "caption" de la CheckBox cochée s'affiche en colonne M.

Alors sur chaque événement click de checkbox, ajoutons un code relatif à ces checkbox

Edit modo : code à mettre entre balises

Private Sub CheckBox1_Click()
Dim Ligne As Long
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
If CheckBox1.Value = True Then Range("M" & Ligne).Value = CheckBox1.Caption
End Sub

Private Sub CheckBox2_Click()
Dim Ligne As Long
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)
If CheckBox2.Value = True Then Range("M" & Ligne).Value = CheckBox2.Caption
End Sub

' sur le bouton Modifier, ajouter une boucle sur les checkbox 1 et 2
Private Sub CommandButton2_Click()
If MsgBox("Etes-vous certain de vouloir modifier ce produit ?", vbYesNo, "Demande de confirmation") = vbYes Then

Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox2.List(Me.ComboBox2.ListIndex, 1)

For I = 1 To 12
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I) = Me.Controls("TextBox" & I)
End If
Next I
End If
For I = 1 To 2
If Me.Controls("CheckBox" & I).Value = True Then
Ws.Cells(Ligne, "M") = Me.Controls("CheckBox" & I).Caption
Else
Ws.Cells(Ligne, "M") = ""
End If
Next I
End Sub

Salut à tous

Ne pas oublier que l'on peut utiliser avantageusement la propriété .Tag des contrôles pour y stocker toute formes d'information.

Scraper,

Le code fonctionne, j'ai juste ajouté le code pour la CheckBox3. Il fonctionne pour la modification de la fiche mais pas pour la création (Nouveau).

Je pense que vous aurez trouvé de vous-même.

Pour la création, c'est à rajouter dans CommandButton3_Click, (comme dans ma proposition initiale)

' attention si la checkbox2 est aussi cochée cela va écraser la valeur en colonne M

If CheckBox1.Value = True Then Range("M" & L).Value = CheckBox1.Caption
If CheckBox2.Value = True Then Range("M" & L).Value = CheckBox2.Caption

Salut à tous,

Blondin, il va falloir que tu fasses un peu de lecture et que tu replanches sur ton formulaire.
Je me répète mais un formulaire tel que décris ici prend 30mn à faire sous Access sans une ligne de code.
Chaque bouton de ton formulaire doit avoir un fonction bien déterminée, un bouton nouveau n'est pas là pour enregistrer les données il doit juste vider les champs et incrémenter un index (pas utilisé ici). donc, soit tu utilises le bouton modifier (qui changera de nom) soit tu rajoutes un bouton enregistrer qui aura la tache de vérifier les entrées et d'enregistrer si tout est bon. et encore si l'on veux pousser plus loin c'est le code appelant qui devrait se charger de cela.
Si tu ne dois avoir qu'un seul retour sur les trois case à cocher, alors remplaces les par des case d'option et utilises la propriété GroupName (Faire une recherche). ce faisant une seule case d'option sera cochée à la fois.
Et je me répète encore voir ci-dessous pour la modélisation entre un formulaire et un tableau structuré.

Scraper,

Merci pour le complément.

Jean Paul, merci pour tes remarques.

Je n'ai jamais utilisé Access, je vais tester, je viens de lire le lien et en effet il va mettre utile.

Rechercher des sujets similaires à "userform ajout checkbox"