|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Bonsoir à tous.
Je souhaite créer un userform en vue d’établir un questionnaire avec un score chiffré : pour cela je vais placer dans cet userform : - des zones label qui vont me permettre d’insérer le texte de mes questions. - Des boutons d’options qui vont permettre de sélectionner les réponses ( un boutons d’options par réponse possible) - Des zones de texte (une zone par question qui contiendra le chiffre permettant de calculer le score en fonction de la réponse). - Une zone de texte qui permettra de calculer le score total en fonction des réponses par cumul de toutes les zones de texte ci-dessus. J’ai donc besoin d des codes pour - attribuer une valeur à chaque bouton options. - Renvoyer cette valeur vers la zone texte reliée à la question. - Faire le cumul de toutes les zones de texte et insérer la valeur obtenue dans la zone de texte finale. Merci d’avance pour cette nouvelle contribution |
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Et tu veux faire ça dans Word ? Excel, pour les calculs, c'est mieux...
Pour les textbox, si c'est simplement pour y placer un résultat, les labels, c'est aussi bien. Quant aux boutons d'option, si tu veux qu'une sélection exclut les autres, dans un frame, c'est mieux (l'aide explique ça très bien) Pour les calculs, tu peux ajouter une macro qui fasse ça que tu appelles à la demande. Besoin de code pour quoi ? A+ |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Bonjour ouskr'eln'or,
Merci de ta réponse, J’opte pour Word car l’application que je souhaite réaliser devra être exploitable sur d’autres ordinateurs qui n’ont pas forcément Excel Je veux créer des groupes de boutons d’option et souhaite que la sélection d’un des boutons d’option entraine l’affichage d’un nombre dans un contrôle pourquoi pas un label si cela est suffisant. Le seul calcul à effectuer sera une addition des nombres figurant dans les contrôles label . Le résultat obtenu devra être reportable dans un autre UserForm. Je pense aussi à autre chose : je vais devoir rajouter un contrôle de défilement texte dans l’U_F_ le nombre de questions à poser étant de l’ordre d’une vingtaine soit 120 contrôles environ : 20 Contrôles Label ( un/questions) 80 boutons d’option ( 4/question)et 20 labels (1/question) + 1 label pour faire le total. Il me faut donc les code: - pour faire le lien entre le bouton d’option et la valeur que je veux donner à ce bouton - La macro ou le code pour effectuer automatiquement cette addition - Le code pour transférer mon résultat dans l’userform principal. - Le code pour mettre en place le défilement texte de l’U_F_ Voila pour cette discussion qui est cependant à relier à mes précédentes questions qui sont pour le moment presque totalement résolues, sauf pour la création des onglets http://www.developpez.net/forums/sho...d.php?t=405073 Voir aussi dès que possible : - Enregistrement d’un UserForm : http://www.developpez.net/forums/sho...d.php?t=399089 - Insertion d’un retour à la ligne : http://www.developpez.net/forums/sho...d.php?t=405972 Voila beaucoup d’exigences de ma part , mais c’est très important pour moi d’avancer rapidement car je ne trouve pas dans le commerce de logiciel pour effectuer correctement cette tache quotidienne, de collecte et de synthèse d’informations. Merci d’avance à toi Ouskel’n’or et à tous pour votre aide. |
|
|
00
|
|
|
#4 | ||||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Ok. Alors au lieu d'avoir 80 boutons d'option, pourquoi ne pas prendre une combobox avec boutons d'option ? Tu n'auras qu'une combo par question au lieu de 4 textbox ou labels, la question étant dans l'en-tête. Pour chaque question une case à cocher. Ensuite tu récupères la réponse pour chacun d'eux. Tu peux limiter le nombre de ligne des combo à 4. Mais j'ai une crainte : N'est-ce pas toi qui as posé la question des combos pouvant, pour chaque item, afficher plusieurs lignes ? Si c'est toi, c'est que les réponses sont trop longue, et c'est rapé
Sinon, cette solution serait moins lourde à gérer. Tes questions : Citation:
Citation:
Code :
Me.Label1.Caption = Val(Label1.Caption) + LaValeur Dans un TextBox c'est Code :
Me.TextBox1.Text = Val(Me.TextBox1.Text) + 1 Citation:
Pour vingt, tu peux transférer les données d'un userform dans l'autre si le second (celui contenant les données à transférer) n'est que "masqué" (par Usf.Hide) et non déchargé (Unload Usf) Citation:
Je t'apporte plus de questions que de réponses, je sais |
||||
|
|
00
|
|
|
#5 | |||
![]() ![]() michel TanguyInscription : août 2005 Messages : 3 317 ![]() |
bonjour
Citation:
scrollAmount définit la vitesse de défilement. Code :
bonne journée michel |
|||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
En fait c’est tout simple Ouskel'n'or et BilkyRoad, je vais prendre un exemple (Voir tableau en piece jointe) Je place pour chaque question - 1 zone labelQ1 pour mettre le texte de la question 1 - 1 groupe de 3 boutons d'option par question. - 1 zone labelR1 pour la réponse de la question 1 Si le patient répond non à la Question 1) le click du bouton d'option va entrainer automatiquement l'affichage de la valeur 2 dans une zone texte ou labelR1.S'il avait répondu oui le click aurait ->l'affichage d'une valeur 0 - Pour la question 2 le patient répond "Partiellement" ->affichage d'une valeur 1 dans une zone ou labelR2 Voilà j'espère que c'est un peu plus clair et ainsi de suite ..... jusqu'a la Question 20 Dans l'exemple le score total qui devrait se calculer seul est de valeur 3 C'est cette valeur 3 que je veux reporter dans l'userform cipale. S'il y a 20 questions cette valeur s'afficherait dans une label21 = Label1+label2+label.... à + label20 Pour le contrôle défilement texte j'ai pris mon exemple avec seuleument 3 questions. Si j'ai 20 questions à poser tout ne vas pas rentrer dans l'UserForm : il me faut donc mettre en place une barre de défilement ScrolBar (Microsoft VB 6.3 ) verticale pour faure défiler mon UserForm Voilà j'espère que c'est un peu plus clair à +
|
|
|
00
|
|
|
#7 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Corrigé avec ajout d'un bouton...
Je vais déjà répondre à ta dernière question. Pour ça, tu prends un userform tout neuf. Dans l'userform tu mets une scrollbar et tu ajoutes un bouton [/B]pour retourner en sommet d'USF Ensuite tu colles ce code dans la feuille de code de l'usf Code :
|
||
|
|
00
|
|
|
#8 | |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Bonsoir Ouskel'n'or
![]() Citation:
Je pense également à autre chose ; il faut que je puisse réouvrir cette userform avec les réponses saisies donc sauver en quittant par la croix: Cette userform Sera en fait un sous formulaire d'une UserForm principale que j'ouvrirai grâce à un command button placé dans l'user principale. Si des données ont été saisies dans l'user secondaire elles devront réapparaitre lors d'une réouverture. Pour la Scrolbar dit comme ça je devrais y arriver !! bcp @++
|
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
RePour la scrolbar c'est testé et Ok: si tout était aussi simple !!!!!
|
|
|
00
|
|
|
#10 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
As-tu pensé à utiliser le caption de l'optionbutton ?
|
|
|
00
|
|
|
#11 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
RE
je ne peux pas car la caption de l'optionbutton affiche la réponse à la question posée et je veux attribuer en fonction de cette réponse une valeur numérique. EX : OptionButton1 : Dans la caption je mets Oui OptionButton2: Dans la caption je mets Partiel OptionButton3 : Dans la caption je mets Non - si la personne répond Oui j'affiche dans la Label1 associée une valeur = 0, - si elle choisit la réponse Partiel j'affiche dans la Label1 associée une valeur = 1 - si elle choisit la réponse Non j'affiche dans la Label1 associée une valeur = 2 @+++ |
|
|
00
|
|
|
#12 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Bon. Ce que je fais quand je veux associer divers contrôles, je donne à chaque type de contrôle le même nom Reponse pour les Labels, Option pour les checkbox, Question pour les ... etc.
Pour les différentier, j'ajoute un index à chaque nom de contrôle de même type Reponse1, Reponse2, Reponse3, ... Option1, Option2, Option 3 Pour les utiliser, j'utilise l'index pour chaque type de contrôle Code :
En prenant l'un de tes exemples, si l'option bouton1 est validée, la réponse est la réponse 1 et la valeur donnée à cette réponse 0 Juste pour l'idée. A+ |
||
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Ok ça a l'air finalement assez simple. Pour terminer ce formulaire il me reste à effectuer la somme des valeurs de mes contrôles labels et d'envoyer le résultat dans l'userform principal. donc en résumé
- un code pour additionner plusieurs labels - un code pour transférer le résultat Merci à ++ |
|
|
00
|
|
|
#14 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Le plus simple (je ne sais plus si c'est à toi que je l'ai indiqué..) c'est la variable déclarée en Public dans le module standard (dans lequel se trouve la macro qui ouvre l'userform par exemple)
Code :
Public Total as ... selon tes besoins byte, integer ou long Code :
|
||
|
|
00
|
|
|
#15 | ||||
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Bon pour les valeurs à associer au click sur mes optionbutton j'ai eu finalement un peu de mal j'ai fini par mettre le code suivant pour chaque bouton d'option et c'est bien ce que je voulais faire exemple
Code :
- pour additionner les valeurs numériques de plusieurs labels par exemple "valeur"Label5 = "valeur"Label4 + "valeur"Label3 + "valeur"Label2 + "valeur"Label1 Jai mis le code que tu me donne mais cela ne fonctionne pas Code :
- Pour reporter ce total contenu dans cette label5 vers une autre Label située dans une autre UserForm je souhaite egalement un peu plus de détails Merci de tes réponses |
||||
|
|
00
|
|
|
#16 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Comment récupères-tu Total ?
Pour tester, mets un msgbox Total en fin de boucle ou ajoute un Debug.print Total et affiche la fenêtre Exécution. Code :
|
||
|
|
00
|
|
|
#17 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
Je fais le total en additionnant les valeurs contenues dans les zones Label.
Voir exemple en début de discussion sur la PJ |
|
|
00
|
|
|
#18 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Ce n'est pas la question. Quel total obtiens-tu ? Le code que je t'ai mis vise à l'obtenir en sortie de formule de calcul.
|
|
|
00
|
|
|
#19 |
|
Invité régulier
![]() Inscription : août 2007 Messages : 67 ![]() |
En fait j'ai testé : le résultat obtenu dans Le MsgBox est bon il correspond à l"addition des différentes zones labels mais je veux afficher ce résultat dans une autre zone label.
|
|
|
00
|
|
|
#20 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com