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

Utilisation de UserForm

3 réponses
Avatar
Markos
Bonjour,

Je souhaite remplir une base avec des données issus d'un formulaire à choix
multiple du style :
""la hauteur est-elle suffisante ? oui, non, NC "" (case à cocher)

**Remarque : pour chacune des questions une réponse dite "positive" sera
enregistrée dans la base
Par exemple la question 1 la réponse à prendre en compte sera OUI, pour la
suivante ce sera par exemple NON, de manière aléatoire...
je pensais faire un UserForm et lors de la validation ne prendre en compte
que les réponses répondant au bon critère, mais je ne sais pas faire ?

jusqu'à présent j'utilise pour récupérer les données du UserForm :
> Public Sub ValiderUF(HauteurAs String, DateSaisie As Date,...)
>Dim LigneAjoutA As Integer, Existant As String
>'On Error Resume Next

>LigneAjoutA = Range("A2").End(xlDown).row + 1
> Range("A" & LigneAjoutA).Value = Hauteur
> Range("B" & LigneAjoutA).Value = DateSaisie
>....
- Comment ne prendre en compte que les réponses positives ?
Je doit prévoir en moyenne 20 à 30 lignes et 4 questionnaires de ce type
pour renseigner la base.

- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une feuille,
colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou NON"

Merci @ +

3 réponses

Avatar
Hervé
Bonjour Markos,
Voyons voir si j'ai bien compris ta question :
----------
- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une feuille,
colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou NON"
----------

Admettons que les questions demandant une réponse se trouvent en colonne A
et que les réponses que tu attends soient reportées en colonne B et ceci en
face de la question correspondante bien sûr.
Sur une Form tu mets un contrôle Frame (cadre) et un bouton. Le cadre doit
être dimensionné en largeur de façon à ce que toute les questions soient
lisibles, si tu ne comprend pas bien, teste et tu saura. Sinon, si tu veux
que la largeur soit dimensionnée dynamiquement, il faut passer par des APIs
pour récupérer la longueur du texte de chaque question pour connaître la
longueur maxi. Une fois que tu as coché les cases, clique sur le bouton et
les réponses seront reportées en colonne B (Oui ou Non, adapte à ton idée).
Les cases à cochées sont crées de façon dynamique, leur nombre est limité
par la mémoire. J'ai testé jusqu'à 300 et aucun problème mais avec un tel
nombre je ne crois pas que se soit très ergonomique.
Enfin, revient si il y a quelque chose qui te chiffone.

Hervé.

"Markos" a écrit dans le message news:

Bonjour,

Je souhaite remplir une base avec des données issus d'un formulaire à
choix

multiple du style :
""la hauteur est-elle suffisante ? oui, non, NC "" (case à cocher)

**Remarque : pour chacune des questions une réponse dite "positive" sera
enregistrée dans la base
Par exemple la question 1 la réponse à prendre en compte sera OUI, pour la
suivante ce sera par exemple NON, de manière aléatoire...
je pensais faire un UserForm et lors de la validation ne prendre en compte
que les réponses répondant au bon critère, mais je ne sais pas faire ?

jusqu'à présent j'utilise pour récupérer les données du UserForm :
Public Sub ValiderUF(HauteurAs String, DateSaisie As Date,...)
Dim LigneAjoutA As Integer, Existant As String
'On Error Resume Next

LigneAjoutA = Range("A2").End(xlDown).row + 1
Range("A" & LigneAjoutA).Value = Hauteur
Range("B" & LigneAjoutA).Value = DateSaisie
....
- Comment ne prendre en compte que les réponses positives ?

Je doit prévoir en moyenne 20 à 30 lignes et 4 questionnaires de ce type
pour renseigner la base.

- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une feuille,
colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou NON"

Merci @ +





Avatar
Hervé
Oups, là j'ai fais fort :o((

Voici le code dont je parle, à mettre dans le module de ta Form :

Private Sub UserForm_Initialize()
Dim Plage As Range
Dim I As Integer
Dim J As Integer
Dim Haut As Long
Haut = 5
'adapte le nom de la feuille
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
'crée les cases à cocher
For I = 1 To Plage.Count
With Frame1.Controls.Add("Forms.CheckBox.1", _
"Chk" & J, _
True)
.Left = 10
.Top = Haut
.Width = Frame1.Width - 10
.Height = 15
.Caption = Plage(I)
End With
Haut = Haut + 16
J = J + 1

Next I
'défini la barre de défilement vertical
'du cadre
With Frame1
.ScrollBars = 2
.ScrollHeight = Haut
.ScrollTop = 2
End With

Set Plage = Nothing
End Sub

Private Sub CommandButton1_Click()
Dim Chk As MSForms.CheckBox
Dim I As Integer
For Each Chk In Frame1.Controls
I = I + 1
If Chk.Value = True Then
Worksheets("Feuil1").Range("B" & I) = "Oui"
Else
Worksheets("Feuil1").Range("B" & I) = "Non"
End If
Next Chk
Set Chk = Nothing
End Sub

Désolé.
Hervé.

"Hervé" a écrit dans le message news:
OK#
Bonjour Markos,
Voyons voir si j'ai bien compris ta question :
----------
- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une
feuille,


colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou NON"
----------

Admettons que les questions demandant une réponse se trouvent en colonne A
et que les réponses que tu attends soient reportées en colonne B et ceci
en

face de la question correspondante bien sûr.
Sur une Form tu mets un contrôle Frame (cadre) et un bouton. Le cadre doit
être dimensionné en largeur de façon à ce que toute les questions soient
lisibles, si tu ne comprend pas bien, teste et tu saura. Sinon, si tu veux
que la largeur soit dimensionnée dynamiquement, il faut passer par des
APIs

pour récupérer la longueur du texte de chaque question pour connaître la
longueur maxi. Une fois que tu as coché les cases, clique sur le bouton et
les réponses seront reportées en colonne B (Oui ou Non, adapte à ton
idée).

Les cases à cochées sont crées de façon dynamique, leur nombre est limité
par la mémoire. J'ai testé jusqu'à 300 et aucun problème mais avec un tel
nombre je ne crois pas que se soit très ergonomique.
Enfin, revient si il y a quelque chose qui te chiffone.

Hervé.

"Markos" a écrit dans le message news:

Bonjour,

Je souhaite remplir une base avec des données issus d'un formulaire à
choix

multiple du style :
""la hauteur est-elle suffisante ? oui, non, NC "" (case à cocher)

**Remarque : pour chacune des questions une réponse dite "positive" sera
enregistrée dans la base
Par exemple la question 1 la réponse à prendre en compte sera OUI, pour
la


suivante ce sera par exemple NON, de manière aléatoire...
je pensais faire un UserForm et lors de la validation ne prendre en
compte


que les réponses répondant au bon critère, mais je ne sais pas faire ?

jusqu'à présent j'utilise pour récupérer les données du UserForm :
Public Sub ValiderUF(HauteurAs String, DateSaisie As Date,...)
Dim LigneAjoutA As Integer, Existant As String
'On Error Resume Next

LigneAjoutA = Range("A2").End(xlDown).row + 1
Range("A" & LigneAjoutA).Value = Hauteur
Range("B" & LigneAjoutA).Value = DateSaisie
....
- Comment ne prendre en compte que les réponses positives ?

Je doit prévoir en moyenne 20 à 30 lignes et 4 questionnaires de ce type
pour renseigner la base.

- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une
feuille,


colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou NON"

Merci @ +









Avatar
MarKos
Bonjour Hervé,
Et merci pour ta prompte réponse, Je m'y lance ce soir, et te tient au
courant...
Désolé pour mon explication tordue, après essais de ta solution, je
complèterai si besoin.
Merci pour ton info concernant les Mots de passe, cet hiver, j'avais le
problème avec un de mes fichiers pour lequel j'avais zappé le MdP. Entre
temps, j'ai refais comme j'ai pu le code. La prochaine fois j'aurais la
solution, mais je comprends aussi les contradicteurs.
En attendant grand merci à tout le groupe pour votre sollicitude


Merci encore.
"Hervé" a écrit dans le message de
news:%
Oups, là j'ai fais fort :o((

Voici le code dont je parle, à mettre dans le module de ta Form :

Private Sub UserForm_Initialize()
Dim Plage As Range
Dim I As Integer
Dim J As Integer
Dim Haut As Long
Haut = 5
'adapte le nom de la feuille
With Worksheets("Feuil1")
Set Plage = .Range(.[A1], .[A65536].End(xlUp))
End With
'crée les cases à cocher
For I = 1 To Plage.Count
With Frame1.Controls.Add("Forms.CheckBox.1", _
"Chk" & J, _
True)
.Left = 10
.Top = Haut
.Width = Frame1.Width - 10
.Height = 15
.Caption = Plage(I)
End With
Haut = Haut + 16
J = J + 1

Next I
'défini la barre de défilement vertical
'du cadre
With Frame1
.ScrollBars = 2
.ScrollHeight = Haut
.ScrollTop = 2
End With

Set Plage = Nothing
End Sub

Private Sub CommandButton1_Click()
Dim Chk As MSForms.CheckBox
Dim I As Integer
For Each Chk In Frame1.Controls
I = I + 1
If Chk.Value = True Then
Worksheets("Feuil1").Range("B" & I) = "Oui"
Else
Worksheets("Feuil1").Range("B" & I) = "Non"
End If
Next Chk
Set Chk = Nothing
End Sub

Désolé.
Hervé.

"Hervé" a écrit dans le message news:
OK#
Bonjour Markos,
Voyons voir si j'ai bien compris ta question :
----------
- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une
feuille,


colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou
NON"



----------
Admettons que les questions demandant une réponse se trouvent en colonne
A


et que les réponses que tu attends soient reportées en colonne B et ceci
en

face de la question correspondante bien sûr.
Sur une Form tu mets un contrôle Frame (cadre) et un bouton. Le cadre
doit


être dimensionné en largeur de façon à ce que toute les questions soient
lisibles, si tu ne comprend pas bien, teste et tu saura. Sinon, si tu
veux


que la largeur soit dimensionnée dynamiquement, il faut passer par des
APIs

pour récupérer la longueur du texte de chaque question pour connaître la
longueur maxi. Une fois que tu as coché les cases, clique sur le bouton
et


les réponses seront reportées en colonne B (Oui ou Non, adapte à ton
idée).

Les cases à cochées sont crées de façon dynamique, leur nombre est
limité


par la mémoire. J'ai testé jusqu'à 300 et aucun problème mais avec un
tel


nombre je ne crois pas que se soit très ergonomique.
Enfin, revient si il y a quelque chose qui te chiffone.

Hervé.

"Markos" a écrit dans le message news:

Bonjour,

Je souhaite remplir une base avec des données issus d'un formulaire à
choix

multiple du style :
""la hauteur est-elle suffisante ? oui, non, NC "" (case à cocher)

**Remarque : pour chacune des questions une réponse dite "positive"
sera



enregistrée dans la base
Par exemple la question 1 la réponse à prendre en compte sera OUI,
pour



la
suivante ce sera par exemple NON, de manière aléatoire...
je pensais faire un UserForm et lors de la validation ne prendre en
compte


que les réponses répondant au bon critère, mais je ne sais pas faire ?

jusqu'à présent j'utilise pour récupérer les données du UserForm :
Public Sub ValiderUF(HauteurAs String, DateSaisie As Date,...)
Dim LigneAjoutA As Integer, Existant As String
'On Error Resume Next

LigneAjoutA = Range("A2").End(xlDown).row + 1
Range("A" & LigneAjoutA).Value = Hauteur
Range("B" & LigneAjoutA).Value = DateSaisie
....
- Comment ne prendre en compte que les réponses positives ?

Je doit prévoir en moyenne 20 à 30 lignes et 4 questionnaires de ce
type



pour renseigner la base.

- Ne serait-il pas possible de créer un UserForm avec des lignes de
questions parametrables,
qui se chargent à l'ouverture avec les questions contenu dans une
feuille,


colonne A,
en colonne B stockant le paramettre de la réponse positive, "OUI ou
NON"




Merci @ +