Case à cocher UserForm

Bonjour,

J'vais essayer d'expliquer au mieux mon problème

Voila j'ai crée un formulaire qui permet de remplir une fiche contact lors d'une opération de phoning.

J'ai crée dans ce formulaire plusieurs question comportant des réponses à choix multiples et j'aimerai obtenir un code qui me permet pour chaque personne appelé indiqué si il a coché oui ou non...

J'ai essayé avec le peu de connaissance que j'ai de tenter un ligne de code mais je n'arrive pas à trouver la solution.

Mon problème est le suivant une fois que ma case est cocher elle vient remplir de la réponse oui ou non la case des autres personne...

J'espère avoir été clair

Merci d'avance

Private Sub CheckBox2_Click()
Dim J As Long

    Set Ws = Sheets("contacts") 'Onglet contact
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            If CheckBox1.Value = True Then 'Si coché
                Range("O" & J) = "Oui"
            Else 'Si non coché
                Range("O" & J) = "Non"
            End If
Next J
End Sub

Je vous copie le code entier pour vous mettre dans le contexte

Option Explicit

Dim Ws As Worksheet
Private Sub CheckBox1_Click() 'Code case N°1

Next J
End Sub

Private Sub CheckBox12_Click()

End Sub

Private Sub CheckBox17_Click()

End Sub

Private Sub CheckBox2_Click()
Dim J As Long

    Set Ws = Sheets("contacts") 'Onglet contact
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
            If CheckBox1.Value = True Then 'Si coché
                Range("O" & J) = "Oui"
            Else 'Si non coché
                Range("O" & J) = "Non"
            End If
Next J
End Sub

Private Sub CheckBox5_Click()

End Sub

Private Sub CheckBox6_Click()

End Sub

Private Sub Label2_Click()

End Sub

Private Sub Label25_Click()

End Sub

Private Sub Label3_Click()

End Sub

Private Sub Label4_Click()

End Sub

Private Sub Label27_Click()

End Sub

Private Sub Label29_Click()

End Sub

Private Sub Label32_Click()

End Sub

Private Sub ListBox1_Click()

End Sub

Private Sub Label42_Click()

End Sub

Private Sub OptionButton12_Click()

End Sub

Private Sub OptionButton14_Click()

End Sub

Private Sub OptionButton6_Click()

End Sub

Private Sub SpinButton1_Change()

End Sub

Private Sub TextBox9_Change()

End Sub

'Pour le formulaire

Private Sub UserForm_Initialize()

Dim J As Long

    Dim I As Integer

    ComboBox2.ColumnCount = 1 'Pour la liste déroulante état

    ComboBox2.List() = Array("  ", "NPC", "RU", "CP", "RDV")

    ComboBox3.ColumnCount = 2 'Pour la liste déroulante Civilité

    ComboBox3.List() = Array("  ", "M.", "Mme.", "Mlle")

    Set Ws = Sheets("contacts") 'Correspond au nom de votre onglet dans le fichier Excel

    With Me.ComboBox1

        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row

            .AddItem Ws.Range("A" & J)

        Next J

    End With

    For I = 1 To 8
        Me.Controls("TextBox" & I).Visible = True

    Next I

End Sub

'Pour la liste déroulante Code client
Private Sub ComboBox1_Change()

    Dim Ligne As Long

    Dim I As Integer

    If Me.ComboBox1.ListIndex = -1 Then Exit Sub

    Ligne = Me.ComboBox1.ListIndex + 2

    ComboBox2 = Ws.Cells(Ligne, "B")
    ComboBox3 = Ws.Cells(Ligne, "C")

    For I = 1 To 8

        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 3)

    Next I

End Sub

'Bouton modifier les valeurs
Private Sub CommandButton2_Click()

    Dim Ligne As Long

    Dim I As Integer

    If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then

        If Me.ComboBox1.ListIndex = -1 Then Exit Sub

        Ligne = Me.ComboBox1.ListIndex + 2

        Ws.Cells(Ligne, "B") = ComboBox2
        Ws.Cells(Ligne, "C") = ComboBox3

        For I = 1 To 8

            If Me.Controls("TextBox" & I).Visible = True Then
                TextBox3.Value = Date
                TextBox3.Value = Format(TextBox3.Value, "dd mmmm yyyy")
                TextBox7.Text = Format(TextBox7.Value, "0# ## ## ## ##")
                TextBox7.Text = Format(TextBox7.Value, "0# ## ## ## ##")
                Ws.Cells(Ligne, I + 3) = Me.Controls("TextBox" & I)

            End If

        Next I

    End If

End Sub
Private Sub CommandButton5_Click()

    Unload Me

End Sub

Private Sub CommandButton3_Click()

    Unload Me

End Sub

Bonjour et bienvenu(e)

misterart a écrit :

Je vous copie le code entier pour vous mettre dans le contexte

Un fichier serait plus utile que le code

Ai je oublié de mentionner que je débute

Merci d'avance

Bonjour

Juste mon avis

En partant comme cela (réagir immédiatement lors de la modification d'un contrôle) va t'amener à avoir un code extrêmement dense

(A moins peut-être d'utiliser des modules de classe)

Le plus simple est de modifier tous les contrôles, et lors de la validation des données, passer en revue tous ces contrôles pour les recopier dans les bonnes cellules

Pour cela il te faut une numérotation identique aux cellules de la page ( exemple TextBox1 -> cellule N, TextBox2 -> cellule O, TextBox3 -> cellule P etc ......)

Ainsi lors de l'appuie sur le bouton valider, une simple boucle te permettra de remplir la ligne

Dans le fichier, je n'ai corrigé que ce que tu as demandé

Merci beaucoup banzai64 pour tes conseil et pour la réponse à ma demande :p

Avant de clôturer le sujet je voulais aussi savoir s'il était possible d'avoir un bouton dans l'userform qui quand on appuis dessus nous amène à une certaine hauteur dans l'userform. Ici moi je veux par exemple quand la réponse est non dans la question "avez vous 5 min pour répondre... " qu'il m'amène à la fin de mon entretien au niveau de l'enregistrement.

Merci encore

PS: J'ai trouvé aucun sujet qui en parle donc voila pourquoi je pose cette question

Bonsoir

Rajoute ce code, à toi de trouver la bonne valeur (50 dans cet exemple)

Private Sub CommandButton4_Click()
  Me.ScrollTop = Me.CommandButton3.Top - 50
End Sub
Rechercher des sujets similaires à "case cocher userform"