Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

userform et optionbutton oui non

8 réponses
Avatar
GB54
Bonjour à tous,
Pour un questionnaire, j'ai crée un user form avec deux questions où les
réponses attendus sont "oui ou non". Les réponses vont en colonnes A et B.
J'ai trouvé des bouts de réponses et créer la procédure suivante pour les
enregistrer:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de données
[A65000].End(xlUp).Offset(1, 0).Select

ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
Nom.Value = ""
OptionButton1.Value = False
OptionButton2.Value = False

[B65000].End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
Nom.Value = ""
OptionButton3.Value = False
OptionButton4.Value = False


End Sub

Problème: la réponse à la question A est bien enregistrée, pas celle de la
B.
Quelqu'un peut il m'indiquer mon erreur?
J'imagine quelque chose du coté du ActiveCell.Offset.
Merci de vos éclairages,
Bonsoir

8 réponses

Avatar
Daniel.C
Bonsoir.
Peut-être :
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
au lieu de
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
Cordialement.
Daniel
"GB54" a écrit dans le message de news:
%
Bonjour à tous,
Pour un questionnaire, j'ai crée un user form avec deux questions où les
réponses attendus sont "oui ou non". Les réponses vont en colonnes A et B.
J'ai trouvé des bouts de réponses et créer la procédure suivante pour les
enregistrer:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de données
[A65000].End(xlUp).Offset(1, 0).Select

ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
Nom.Value = ""
OptionButton1.Value = False
OptionButton2.Value = False

[B65000].End(xlUp).Offset(1, 0).Select
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
Nom.Value = ""
OptionButton3.Value = False
OptionButton4.Value = False


End Sub

Problème: la réponse à la question A est bien enregistrée, pas celle de la
B.
Quelqu'un peut il m'indiquer mon erreur?
J'imagine quelque chose du coté du ActiveCell.Offset.
Merci de vos éclairages,
Bonsoir


Avatar
beauverger.gael
Bonjour,
Merci de l'aide, je viens de rectifier mon code comme ceci:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de
données

' séléction de la première ligne vide
[A65000].End(xlUp).Offset(1, 0).Select

' réponse à la question A
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
OptionButton1.Value = False
OptionButton2.Value = False

' réponse à la question B
ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
OptionButton3.Value = False
OptionButton4.Value = False

' réponse à la question C
ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
OptionButton5.Value = False
OptionButton6.Value = False

'réponse à la question D
ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
OptionButton10.Value = False
OptionButton9.Value = False

End Sub
Cependant, une valeur "non" est saisie même si l'utilisateur ne répond
pas à la question!
Dans l'aide vba, on parle de la propriété TripleState pour avoir une
valeur "null".
Comment peut on mettre cela en oeuvre?
Cordialement,
GB54


On 17 sep, 23:05, "Daniel.C" wrote:
Bonsoir.
Peut-être :
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
au lieu de
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
Cordialement.
Daniel
"GB54" a écrit dans le message de news:
%

> Bonjour à tous,
> Pour un questionnaire, j'ai crée un user form avec deux questions o ù les
> réponses attendus sont "oui ou non". Les réponses vont en colonnes A et B.
> J'ai trouvé des bouts de réponses et créer la procédure suivant e pour les
> enregistrer:

> Private Sub CommandButton1_Click()
> ' transfert les données du formulaire sur la feuille de base de donn ées
> [A65000].End(xlUp).Offset(1, 0).Select

> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> Nom.Value = ""
> OptionButton1.Value = False
> OptionButton2.Value = False

> [B65000].End(xlUp).Offset(1, 0).Select
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> Nom.Value = ""
> OptionButton3.Value = False
> OptionButton4.Value = False

> End Sub

> Problème: la réponse à la question A est bien enregistrée, pas celle de la
> B.
> Quelqu'un peut il m'indiquer mon erreur?
> J'imagine quelque chose du coté du ActiveCell.Offset.
> Merci de vos éclairages,
> Bonsoir


Avatar
Daniel.C
Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occupé que
de la première répponse) :

Private Sub CommandButton1_Click()
[A65000].End(xlUp).Offset(1, 0).Select
If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
MsgBox "Pas de réponse"
Else
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
End If
OptionButton1.Value = Null
OptionButton2.Value = Null
End Sub

Private Sub UserForm_Initialize()
Me.OptionButton1.TripleState = True
Me.OptionButton1.Value = Null
Me.OptionButton2.TripleState = True
Me.OptionButton2.Value = Null
End Sub

Autrement, tu peux tester que les deux optionbuttons sont à False.
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour,
Merci de l'aide, je viens de rectifier mon code comme ceci:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de
données

' séléction de la première ligne vide
[A65000].End(xlUp).Offset(1, 0).Select

' réponse à la question A
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
OptionButton1.Value = False
OptionButton2.Value = False

' réponse à la question B
ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
OptionButton3.Value = False
OptionButton4.Value = False

' réponse à la question C
ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
OptionButton5.Value = False
OptionButton6.Value = False

'réponse à la question D
ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
OptionButton10.Value = False
OptionButton9.Value = False

End Sub
Cependant, une valeur "non" est saisie même si l'utilisateur ne répond
pas à la question!
Dans l'aide vba, on parle de la propriété TripleState pour avoir une
valeur "null".
Comment peut on mettre cela en oeuvre?
Cordialement,
GB54


On 17 sep, 23:05, "Daniel.C" wrote:
Bonsoir.
Peut-être :
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
au lieu de
ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
Cordialement.
Daniel
"GB54" a écrit dans le message de news:
%

> Bonjour à tous,
> Pour un questionnaire, j'ai crée un user form avec deux questions où les
> réponses attendus sont "oui ou non". Les réponses vont en colonnes A et
> B.
> J'ai trouvé des bouts de réponses et créer la procédure suivante pour
> les
> enregistrer:

> Private Sub CommandButton1_Click()
> ' transfert les données du formulaire sur la feuille de base de données
> [A65000].End(xlUp).Offset(1, 0).Select

> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> Nom.Value = ""
> OptionButton1.Value = False
> OptionButton2.Value = False

> [B65000].End(xlUp).Offset(1, 0).Select
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> Nom.Value = ""
> OptionButton3.Value = False
> OptionButton4.Value = False

> End Sub

> Problème: la réponse à la question A est bien enregistrée, pas celle de
> la
> B.
> Quelqu'un peut il m'indiquer mon erreur?
> J'imagine quelque chose du coté du ActiveCell.Offset.
> Merci de vos éclairages,
> Bonsoir


Avatar
beauverger.gael
Bonjour Daniel,
Je me suis mal exprimé en fait.
Le votant peut répondre oui, non ou ne pas répondre à la question.
Ce que je souhaite, s'il ne répond pas, c'est que dans la case
considérée il n'y ait rien (avec ce que j'ai fait, on a pour l'instant
"non" d'indiqué).
Cordialement,
GB54

On 18 sep, 10:44, "Daniel.C" wrote:
Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occup é que
de la première répponse) :

Private Sub CommandButton1_Click()
[A65000].End(xlUp).Offset(1, 0).Select
If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
MsgBox "Pas de réponse"
Else
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
End If
OptionButton1.Value = Null
OptionButton2.Value = Null
End Sub

Private Sub UserForm_Initialize()
Me.OptionButton1.TripleState = True
Me.OptionButton1.Value = Null
Me.OptionButton2.TripleState = True
Me.OptionButton2.Value = Null
End Sub

Autrement, tu peux tester que les deux optionbuttons sont à False.
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour,
Merci de l'aide, je viens de rectifier mon code comme ceci:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de
données

' séléction de la première ligne vide
[A65000].End(xlUp).Offset(1, 0).Select

' réponse à la question A
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
OptionButton1.Value = False
OptionButton2.Value = False

' réponse à la question B
ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
OptionButton3.Value = False
OptionButton4.Value = False

' réponse à la question C
ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
OptionButton5.Value = False
OptionButton6.Value = False

'réponse à la question D
ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
OptionButton10.Value = False
OptionButton9.Value = False

End Sub
Cependant, une valeur "non" est saisie même si l'utilisateur ne répon d
pas à la question!
Dans l'aide vba, on parle de la propriété TripleState pour avoir une
valeur "null".
Comment peut on mettre cela en oeuvre?
Cordialement,
GB54

On 17 sep, 23:05, "Daniel.C" wrote:

> Bonsoir.
> Peut-être :
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> au lieu de
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> Cordialement.
> Daniel
> "GB54" a écrit dans le message de new s:
> %

> > Bonjour à tous,
> > Pour un questionnaire, j'ai crée un user form avec deux questions o ù les
> > réponses attendus sont "oui ou non". Les réponses vont en colonne s A et
> > B.
> > J'ai trouvé des bouts de réponses et créer la procédure suiva nte pour
> > les
> > enregistrer:

> > Private Sub CommandButton1_Click()
> > ' transfert les données du formulaire sur la feuille de base de don nées
> > [A65000].End(xlUp).Offset(1, 0).Select

> > ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> > Nom.Value = ""
> > OptionButton1.Value = False
> > OptionButton2.Value = False

> > [B65000].End(xlUp).Offset(1, 0).Select
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > Nom.Value = ""
> > OptionButton3.Value = False
> > OptionButton4.Value = False

> > End Sub

> > Problème: la réponse à la question A est bien enregistrée, pa s celle de
> > la
> > B.
> > Quelqu'un peut il m'indiquer mon erreur?
> > J'imagine quelque chose du coté du ActiveCell.Offset.
> > Merci de vos éclairages,
> > Bonsoir


Avatar
Daniel.C
Le code, tel que l'ai posté, répond à ton besoin. Si l'utilisateur ne répond
pas, la valeur des deux optionbuttons est égale à "Null". S'il répond oui ou
non, la valeur d'un des optionbuttons est égale à "true" et l'autre à
"false".
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
Je me suis mal exprimé en fait.
Le votant peut répondre oui, non ou ne pas répondre à la question.
Ce que je souhaite, s'il ne répond pas, c'est que dans la case
considérée il n'y ait rien (avec ce que j'ai fait, on a pour l'instant
"non" d'indiqué).
Cordialement,
GB54

On 18 sep, 10:44, "Daniel.C" wrote:
Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occupé
que
de la première répponse) :

Private Sub CommandButton1_Click()
[A65000].End(xlUp).Offset(1, 0).Select
If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
MsgBox "Pas de réponse"
Else
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
End If
OptionButton1.Value = Null
OptionButton2.Value = Null
End Sub

Private Sub UserForm_Initialize()
Me.OptionButton1.TripleState = True
Me.OptionButton1.Value = Null
Me.OptionButton2.TripleState = True
Me.OptionButton2.Value = Null
End Sub

Autrement, tu peux tester que les deux optionbuttons sont à False.
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour,
Merci de l'aide, je viens de rectifier mon code comme ceci:

Private Sub CommandButton1_Click()
' transfert les données du formulaire sur la feuille de base de
données

' séléction de la première ligne vide
[A65000].End(xlUp).Offset(1, 0).Select

' réponse à la question A
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
OptionButton1.Value = False
OptionButton2.Value = False

' réponse à la question B
ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
OptionButton3.Value = False
OptionButton4.Value = False

' réponse à la question C
ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
OptionButton5.Value = False
OptionButton6.Value = False

'réponse à la question D
ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
OptionButton10.Value = False
OptionButton9.Value = False

End Sub
Cependant, une valeur "non" est saisie même si l'utilisateur ne répond
pas à la question!
Dans l'aide vba, on parle de la propriété TripleState pour avoir une
valeur "null".
Comment peut on mettre cela en oeuvre?
Cordialement,
GB54

On 17 sep, 23:05, "Daniel.C" wrote:

> Bonsoir.
> Peut-être :
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> au lieu de
> ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> Cordialement.
> Daniel
> "GB54" a écrit dans le message de news:
> %

> > Bonjour à tous,
> > Pour un questionnaire, j'ai crée un user form avec deux questions où
> > les
> > réponses attendus sont "oui ou non". Les réponses vont en colonnes A
> > et
> > B.
> > J'ai trouvé des bouts de réponses et créer la procédure suivante pour
> > les
> > enregistrer:

> > Private Sub CommandButton1_Click()
> > ' transfert les données du formulaire sur la feuille de base de
> > données
> > [A65000].End(xlUp).Offset(1, 0).Select

> > ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> > Nom.Value = ""
> > OptionButton1.Value = False
> > OptionButton2.Value = False

> > [B65000].End(xlUp).Offset(1, 0).Select
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > Nom.Value = ""
> > OptionButton3.Value = False
> > OptionButton4.Value = False

> > End Sub

> > Problème: la réponse à la question A est bien enregistrée, pas celle
> > de
> > la
> > B.
> > Quelqu'un peut il m'indiquer mon erreur?
> > J'imagine quelque chose du coté du ActiveCell.Offset.
> > Merci de vos éclairages,
> > Bonsoir


Avatar
beauverger.gael
Bonjour Daniel,
J'ai testé cela fonctionne.
Cependant, si l'on ne répond pas à la question A et que l'on répond
aux autres questions la procédure fait que l'on revient en cellule a
de la ligne puisque celle ci est considérée comme vide.
J'imagine deux options soit un code qui détermine la dernière ligne
totalement vide, en partant du bas, soit de décaler mes cellules de
réponses aux questions, en imposant une saisie en colonne A
Cordialement,
GB54

On 18 sep, 13:44, "Daniel.C" wrote:
Le code, tel que l'ai posté, répond à ton besoin. Si l'utilisateur ne répond
pas, la valeur des deux optionbuttons est égale à "Null". S'il répo nd oui ou
non, la valeur d'un des optionbuttons est égale à "true" et l'autre à
"false".
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
Je me suis mal exprimé en fait.
Le votant peut répondre oui, non ou ne pas répondre à la question.
Ce que je souhaite, s'il ne répond pas, c'est que dans la case
considérée il n'y ait rien (avec ce que j'ai fait, on a pour l'instan t
"non" d'indiqué).
Cordialement,
GB54

On 18 sep, 10:44, "Daniel.C" wrote:

> Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occu pé
> que
> de la première répponse) :

> Private Sub CommandButton1_Click()
> [A65000].End(xlUp).Offset(1, 0).Select
> If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
> MsgBox "Pas de réponse"
> Else
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> End If
> OptionButton1.Value = Null
> OptionButton2.Value = Null
> End Sub

> Private Sub UserForm_Initialize()
> Me.OptionButton1.TripleState = True
> Me.OptionButton1.Value = Null
> Me.OptionButton2.TripleState = True
> Me.OptionButton2.Value = Null
> End Sub

> Autrement, tu peux tester que les deux optionbuttons sont à False.
> Cordialement.
> Daniel
> a écrit dans le message de news:
>
> Bonjour,
> Merci de l'aide, je viens de rectifier mon code comme ceci:

> Private Sub CommandButton1_Click()
> ' transfert les données du formulaire sur la feuille de base de
> données

> ' séléction de la première ligne vide
> [A65000].End(xlUp).Offset(1, 0).Select

> ' réponse à la question A
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> OptionButton1.Value = False
> OptionButton2.Value = False

> ' réponse à la question B
> ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> OptionButton3.Value = False
> OptionButton4.Value = False

> ' réponse à la question C
> ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
> OptionButton5.Value = False
> OptionButton6.Value = False

> 'réponse à la question D
> ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
> OptionButton10.Value = False
> OptionButton9.Value = False

> End Sub
> Cependant, une valeur "non" est saisie même si l'utilisateur ne rép ond
> pas à la question!
> Dans l'aide vba, on parle de la propriété TripleState pour avoir un e
> valeur "null".
> Comment peut on mettre cela en oeuvre?
> Cordialement,
> GB54

> On 17 sep, 23:05, "Daniel.C" wrote:

> > Bonsoir.
> > Peut-être :
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> > au lieu de
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > Cordialement.
> > Daniel
> > "GB54" a écrit dans le message de n ews:
> > %

> > > Bonjour à tous,
> > > Pour un questionnaire, j'ai crée un user form avec deux questions où
> > > les
> > > réponses attendus sont "oui ou non". Les réponses vont en colon nes A
> > > et
> > > B.
> > > J'ai trouvé des bouts de réponses et créer la procédure sui vante pour
> > > les
> > > enregistrer:

> > > Private Sub CommandButton1_Click()
> > > ' transfert les données du formulaire sur la feuille de base de
> > > données
> > > [A65000].End(xlUp).Offset(1, 0).Select

> > > ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton1.Value = False
> > > OptionButton2.Value = False

> > > [B65000].End(xlUp).Offset(1, 0).Select
> > > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton3.Value = False
> > > OptionButton4.Value = False

> > > End Sub

> > > Problème: la réponse à la question A est bien enregistrée, pas celle
> > > de
> > > la
> > > B.
> > > Quelqu'un peut il m'indiquer mon erreur?
> > > J'imagine quelque chose du coté du ActiveCell.Offset.
> > > Merci de vos éclairages,
> > > Bonsoir


Avatar
Daniel.C
En cas de non réponse, mets un espace dans la cellule :

[A65000].End(xlUp).Offset(1, 0).Select
If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
ActiveCell.Offset(0, 0) = " "
Else
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
End If
OptionButton1.Value = Null
OptionButton2.Value = Null

Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
J'ai testé cela fonctionne.
Cependant, si l'on ne répond pas à la question A et que l'on répond
aux autres questions la procédure fait que l'on revient en cellule a
de la ligne puisque celle ci est considérée comme vide.
J'imagine deux options soit un code qui détermine la dernière ligne
totalement vide, en partant du bas, soit de décaler mes cellules de
réponses aux questions, en imposant une saisie en colonne A
Cordialement,
GB54

On 18 sep, 13:44, "Daniel.C" wrote:
Le code, tel que l'ai posté, répond à ton besoin. Si l'utilisateur ne
répond
pas, la valeur des deux optionbuttons est égale à "Null". S'il répond oui
ou
non, la valeur d'un des optionbuttons est égale à "true" et l'autre à
"false".
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
Je me suis mal exprimé en fait.
Le votant peut répondre oui, non ou ne pas répondre à la question.
Ce que je souhaite, s'il ne répond pas, c'est que dans la case
considérée il n'y ait rien (avec ce que j'ai fait, on a pour l'instant
"non" d'indiqué).
Cordialement,
GB54

On 18 sep, 10:44, "Daniel.C" wrote:

> Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occupé
> que
> de la première répponse) :

> Private Sub CommandButton1_Click()
> [A65000].End(xlUp).Offset(1, 0).Select
> If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
> MsgBox "Pas de réponse"
> Else
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> End If
> OptionButton1.Value = Null
> OptionButton2.Value = Null
> End Sub

> Private Sub UserForm_Initialize()
> Me.OptionButton1.TripleState = True
> Me.OptionButton1.Value = Null
> Me.OptionButton2.TripleState = True
> Me.OptionButton2.Value = Null
> End Sub

> Autrement, tu peux tester que les deux optionbuttons sont à False.
> Cordialement.
> Daniel
> a écrit dans le message de news:
>
> Bonjour,
> Merci de l'aide, je viens de rectifier mon code comme ceci:

> Private Sub CommandButton1_Click()
> ' transfert les données du formulaire sur la feuille de base de
> données

> ' séléction de la première ligne vide
> [A65000].End(xlUp).Offset(1, 0).Select

> ' réponse à la question A
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> OptionButton1.Value = False
> OptionButton2.Value = False

> ' réponse à la question B
> ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> OptionButton3.Value = False
> OptionButton4.Value = False

> ' réponse à la question C
> ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
> OptionButton5.Value = False
> OptionButton6.Value = False

> 'réponse à la question D
> ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
> OptionButton10.Value = False
> OptionButton9.Value = False

> End Sub
> Cependant, une valeur "non" est saisie même si l'utilisateur ne répond
> pas à la question!
> Dans l'aide vba, on parle de la propriété TripleState pour avoir une
> valeur "null".
> Comment peut on mettre cela en oeuvre?
> Cordialement,
> GB54

> On 17 sep, 23:05, "Daniel.C" wrote:

> > Bonsoir.
> > Peut-être :
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> > au lieu de
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > Cordialement.
> > Daniel
> > "GB54" a écrit dans le message de
> > news:
> > %

> > > Bonjour à tous,
> > > Pour un questionnaire, j'ai crée un user form avec deux questions où
> > > les
> > > réponses attendus sont "oui ou non". Les réponses vont en colonnes A
> > > et
> > > B.
> > > J'ai trouvé des bouts de réponses et créer la procédure suivante
> > > pour
> > > les
> > > enregistrer:

> > > Private Sub CommandButton1_Click()
> > > ' transfert les données du formulaire sur la feuille de base de
> > > données
> > > [A65000].End(xlUp).Offset(1, 0).Select

> > > ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton1.Value = False
> > > OptionButton2.Value = False

> > > [B65000].End(xlUp).Offset(1, 0).Select
> > > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton3.Value = False
> > > OptionButton4.Value = False

> > > End Sub

> > > Problème: la réponse à la question A est bien enregistrée, pas celle
> > > de
> > > la
> > > B.
> > > Quelqu'un peut il m'indiquer mon erreur?
> > > J'imagine quelque chose du coté du ActiveCell.Offset.
> > > Merci de vos éclairages,
> > > Bonsoir


Avatar
GB54
Bonjour,
Je vais tester cette solution.
Merci
GB54
"Daniel.C" a écrit dans le message de
news:%
En cas de non réponse, mets un espace dans la cellule :

[A65000].End(xlUp).Offset(1, 0).Select
If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
ActiveCell.Offset(0, 0) = " "
Else
ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
End If
OptionButton1.Value = Null
OptionButton2.Value = Null

Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
J'ai testé cela fonctionne.
Cependant, si l'on ne répond pas à la question A et que l'on répond
aux autres questions la procédure fait que l'on revient en cellule a
de la ligne puisque celle ci est considérée comme vide.
J'imagine deux options soit un code qui détermine la dernière ligne
totalement vide, en partant du bas, soit de décaler mes cellules de
réponses aux questions, en imposant une saisie en colonne A
Cordialement,
GB54

On 18 sep, 13:44, "Daniel.C" wrote:
Le code, tel que l'ai posté, répond à ton besoin. Si l'utilisateur ne
répond
pas, la valeur des deux optionbuttons est égale à "Null". S'il répond oui
ou
non, la valeur d'un des optionbuttons est égale à "true" et l'autre à
"false".
Cordialement.
Daniel
a écrit dans le message de news:

Bonjour Daniel,
Je me suis mal exprimé en fait.
Le votant peut répondre oui, non ou ne pas répondre à la question.
Ce que je souhaite, s'il ne répond pas, c'est que dans la case
considérée il n'y ait rien (avec ce que j'ai fait, on a pour l'instant
"non" d'indiqué).
Cordialement,
GB54

On 18 sep, 10:44, "Daniel.C" wrote:

> Bonjour si tu veux utiliser le tiers état, essaie (je ne me suis occupé
> que
> de la première répponse) :

> Private Sub CommandButton1_Click()
> [A65000].End(xlUp).Offset(1, 0).Select
> If IsNull(Me.OptionButton1) And IsNull(Me.OptionButton2) Then
> MsgBox "Pas de réponse"
> Else
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> End If
> OptionButton1.Value = Null
> OptionButton2.Value = Null
> End Sub

> Private Sub UserForm_Initialize()
> Me.OptionButton1.TripleState = True
> Me.OptionButton1.Value = Null
> Me.OptionButton2.TripleState = True
> Me.OptionButton2.Value = Null
> End Sub

> Autrement, tu peux tester que les deux optionbuttons sont à False.
> Cordialement.
> Daniel
> a écrit dans le message de news:
>
> Bonjour,
> Merci de l'aide, je viens de rectifier mon code comme ceci:

> Private Sub CommandButton1_Click()
> ' transfert les données du formulaire sur la feuille de base de
> données

> ' séléction de la première ligne vide
> [A65000].End(xlUp).Offset(1, 0).Select

> ' réponse à la question A
> ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> OptionButton1.Value = False
> OptionButton2.Value = False

> ' réponse à la question B
> ActiveCell.Offset(0, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> OptionButton3.Value = False
> OptionButton4.Value = False

> ' réponse à la question C
> ActiveCell.Offset(0, 2) = IIf(Me.OptionButton5, "OUI", "NON")
> OptionButton5.Value = False
> OptionButton6.Value = False

> 'réponse à la question D
> ActiveCell.Offset(0, 3) = IIf(Me.OptionButton10, "OUI", "NON")
> OptionButton10.Value = False
> OptionButton9.Value = False

> End Sub
> Cependant, une valeur "non" est saisie même si l'utilisateur ne répond
> pas à la question!
> Dans l'aide vba, on parle de la propriété TripleState pour avoir une
> valeur "null".
> Comment peut on mettre cela en oeuvre?
> Cordialement,
> GB54

> On 17 sep, 23:05, "Daniel.C" wrote:

> > Bonsoir.
> > Peut-être :
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton3, "OUI", "NON")
> > au lieu de
> > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > Cordialement.
> > Daniel
> > "GB54" a écrit dans le message de
> > news:
> > %

> > > Bonjour à tous,
> > > Pour un questionnaire, j'ai crée un user form avec deux questions
> > > où
> > > les
> > > réponses attendus sont "oui ou non". Les réponses vont en colonnes
> > > A
> > > et
> > > B.
> > > J'ai trouvé des bouts de réponses et créer la procédure suivante
> > > pour
> > > les
> > > enregistrer:

> > > Private Sub CommandButton1_Click()
> > > ' transfert les données du formulaire sur la feuille de base de
> > > données
> > > [A65000].End(xlUp).Offset(1, 0).Select

> > > ActiveCell.Offset(0, 0) = IIf(Me.OptionButton1, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton1.Value = False
> > > OptionButton2.Value = False

> > > [B65000].End(xlUp).Offset(1, 0).Select
> > > ActiveCell.Offset(1, 1) = IIf(Me.OptionButton2, "OUI", "NON")
> > > Nom.Value = ""
> > > OptionButton3.Value = False
> > > OptionButton4.Value = False

> > > End Sub

> > > Problème: la réponse à la question A est bien enregistrée, pas
> > > celle
> > > de
> > > la
> > > B.
> > > Quelqu'un peut il m'indiquer mon erreur?
> > > J'imagine quelque chose du coté du ActiveCell.Offset.
> > > Merci de vos éclairages,
> > > Bonsoir