IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment créer deux "option buttons" dont l'un renvoie une valeur


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Comment créer deux "option buttons" dont l'un renvoie une valeur
    Bonjour à tous, je suis un amateur en VBA et en macros Excel.

    J'ai créé un formulaire dans lequel chaque question sur la feuille "questionnaire" peut être validé par un "oui" ou un "non".

    Je voudrais que chaque clic dans le premier bouton "oui", renvoie le string "oui" dans la cellule d'une autre feuille que j'ai appelée "échelles", et que le clic dans le deuxième bouton "non" (ou le "non-clic" dans le bouton "oui" , les deux boutons étant dépendants) renvoie un "non" dans ma feuille de résultats.

    Ce qui me permettra ensuite de comparer chaque "oui" et chaque "non" recueilli, à une liste préétablie, de manière à attribuer 1 point pour chaque correspondance positive : si "oui" et "oui" , donc 1 ; si "non" et "non" , donc 1, sinon 0.

    Je vous joins un brouillon du formulaire, sans les questions ni toutes les échelles. Pourriez-vous aussi me dire comment me débarrasser d'une case à cocher (cellule E10) que j'ai tenté de mettre à la place, et qui ne s'en va pas, malgré "édition" "supprimer" de la ligne ou de la colonne ???

    Je me galère avec ce problème depuis un certain temps, sans réponse qui me fasse avancer jusqu'à présent.

    Etant débutant, merci, si vous me donnez une ligne de code, de m'expliquer où et comment je dois la mettre dans mes feuilles.

    Ci-joint mon formulaire ne contenant que les cellules à associer. MERCI BCP.
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour commencer, pour la case à cocher de la cellule "E10" :

    -vous cliquez sur "Affichage", "Barre d'outils", "Boite à outils contrôles".

    -vous cliquez sur l'outil "Mode création" puis clic droit sur la case à cocher puis "Couper".

    Pour les cases à cocher vous pouvez créer sur le Userform un Commandbutton (que j'ai nommé par exemple Cmdvalid) et mettre le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Cmdvalid_Click()
    If OptionButton1 = True Then
    Valeur = "OUI"
    ElseIf OptionButton2 = True Then
    Valeur = "NON"
    End If
    End Sub
    Si vous voulez que le contenu de la variable "Valeur" soit utilisé dans une procédure externe au Userform il faut déclarer dans un module :

    Dernière modification par AlainTech ; 23/03/2009 à 07h58. Motif: Fusion de 2 messages

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour tes suggestions et j'ai supprimé le bouton en trop.

    J'ai donc essayé d'appliquer le code (voir fichier joint).

    Je n'ai pas su comment changer le contenu du bouton de command en "oui" ou "non".

    Concernant le renvoi de la valeur dans la colonne des échelles, je ne sais pas ce que c'est qu'un module ?

    Merci.
    Fichiers attachés Fichiers attachés

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Il ne faut pas confondre l'utilisation d'un Userform et la création d'objets , (Boutons d'option, Bouton de commande et autres sur une feuille Excel) avec "Affichage", "Barre d'outils", "Boite à outils contrôles" ou "Affichage", "Barre d'outils", "Formulaire".

    Ce n'est pas tout à fait la même chose.

    Il faut donc savoir si vous voulez utiliser un Userform ou non.

    Pour créer un module :

    Alt + F11 la fenêtre VBA est affichée. Cliquer sur "Insertion" puis "Module"

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci à tous et à toutes de votre disponibilité.

    En fait je n'utilise pas de userform dans la fenêtre VBA, car je ne sais tjs pas comment rappatrier ensuite ce que j'ai fait dans une feuille excel valide. Pas de réponse à cette question ni dans mes livres VBA ou Excel, ni sur internet.

    Je dois donc passer par des objets ou des formules, directement à partir de mon questionnaire.

    Voilà où j'en suis actuellement (voir fichier joint) :


    Grâce à un internaute, nous avons pu supprimer les options buttons de la feuille "questionnaire" et mettre à la place des boutons, qui renvoient directement des "oui" ou des "non" dans la feuille des "échelles", que je dois ensuite comparer avec une liste préétablies de "oui" ou de "non" (que je peux modifier à ma guise) figurant à droite de chacune des échelles.

    Chaque correspondance "oui" avec "oui" et "non" avec "non", doit renvoyer la valeur "1", ou "0" ou "nul" s'il n'y pas de correspondance, pour que je puisse à la fin faire le total des points à chaque échelle.

    Malheureusement, dans le fichier que je vous envoie, la formule dans les échelles ne me donne plus 1 point à chaque correspondance, mais 0 ou 2 !!! Premier pb.


    Ensuite j'ai voulu adapter le questionnaire initial à ce dont j'avais besoin, cad :

    Rajouter une colonne avec le numéro des questions, en format texte, tout à gauche.

    La galère a recommencé, parce que du coup, quand on valide l'un des boutons, le texte s'efface !!!!


    Ensuite, étant donné le nombre de questions, il se pourrait que certaines personnes interrogées se plantent dans les oui ou les non (certains n'arrivent pas à différencier leur droite de leur gauche), et cela ferait des centaines d'heures de travail pour rien.

    Il fallait donc que je rajoute une colonne avec que des "OUI" et une colonne avec que des "NON" à droite de chacun des boutons.
    Nouvelle galère, car du coup les boutons de la colonne des "non" ont perdu leur propriété de boutons . Génial !!!!!


    J'ai voulu ensuite copier une série de boutons pour compléter mon questionnaire, car il y aura plus de 600 questions à entrer et à tester auprès de plus de 100 personnes (eh oui, du boulot en perspective) : et à nouveau je me galère avec cette histoire de copie de cellules ou de boutons ......


    Au secours +++

    En résumé, ce dont j'ai besoin : un questionnaire, même vide de questions sur la fin, avec environ 600 groupes de boutons, qui renvoie des 1 à chaque correspondance "oui" ou "non", dans les échelles, et que je saurais compléter ou modifier pour pouvoir rajouter des lignes ou des colonnes, différentes ou parfois identiques (notamment pour les boutons et la colonne des "oui" et des "non" ds les échelles de validation), sans que cela modifie l'ensemble du questionnaire.

    A s'arracher les cheveux.

    J'y pense jour et nuit depuis une semaine, en essayant de bidouiller pour comprendre et trouver, même par hasard. Rien à faire, je ne peux plus compter que sur vous, et le monde des internautes vous en remerciera vivement.

    A bientôt j'espère. Bon courage et merci d'avance.
    Fichiers attachés Fichiers attachés

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    J'ai aussi fait la tentative de créer un module avec une Userform et un bouton de commande, mais ensuite je ne sais pas quoi en faire ni où mettre la "public valeur $" ?

    Ci joint l'image de ce que j'ai fait.
    Images attachées Images attachées  

  7. #7
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Je ne comprend pas pourquoi vouloir passer par une macro, les bouton radio présent dans la barre visual basic peuvent être liés a une cellule excel, le contenu de la cellule change et fonction de l'état des boutons radio, il te suffit ensuite de comptabilisé les valeur obtenue dans la colonne oui et dans la colonne Non liées, si les valeurs ne te satisfont pas, un simple If dans une autre cellule te permettra d'adapter la valeur.
    Admettons que tes bouton "oui" soient liés a la colonne A, que le fait d'être sélectionné te renvoie la valeur 2 et que tu souhaites avoir la valeur1, dans une colonne non utilisé tu utilises une formule du genre
    Itu étant cette formule sur la colonne.
    J'espère avoir cerné ton problème et ne pas avoir répondu a coté de ton besoin
    a++
    Qwaz

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour Qwazerty, et merci de ton effort pour m'aider.

    En fait je ne suis pas assez doué en VBA pour vraiment comprendre et appliquer ce que tu me suggère.

    Je viens finalement de trouver, avec l'aide d'autres internautes, une autre solution qui a totalement réglé tous les pbs :

    - celui du copier-coller du questionnaire ;
    - celui de l'ordre à mettre dans les questions (en cliquant dans la cellule "ordre" après avoir modifié la colonne de l'ordre ;
    - et enfin le renvoi d'une valeur en comparant la réponse donnée avec celle attendue dans chaque échelle, en mettant une colonne de 1 correspondant à la valeur renvoyée. Comme cela je peux aussi mettre n'importe quelle autre valeur dans cette colonne, suivant le questionnaire en question.

    Merci à vous tous et toutes, mon pb est donc résolu.

    Je t'envoie le fichier pour que tu puisses voir le résultat.

    Sais-tu où et comment je peux faire partager mon fichier pour d'autres chercheurs qui comme quoi risquent de se galérer avec ce genre de formulaire à mettre en oeuvre ?

    A très bientôt et bonne journée ensoleillée à tous. Philippe.
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Ma solution ne faisait justement pas intervenir Excel, je serais chez moi dans quelques heure et je te proposerais un fichier.
    Pour ce qui est de partager ton fichier, tu peux aller dans la section Excel ou ce trouve un topic Post It nommé Contribuez, tu pourras y ouvrir un fil et y déposer ton fichier avec quelques explications.
    A++
    Qwaz

  10. #10
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Je viens de regarder ta solution final et il est vrai qu'elle t'apportera moins de travail que celle que je vais te proposer, je la poste quand meme.
    J'ai utilisé des radios boutons issu de la barre de menu Visual Basic, Outils, j'ai grouper les bouton 2 par 2 (je n'ai fait que les 2 1er lignes), j'ai lié le 1er radio de chaque groupe a la cellule D de la même ligne, ainsi tu as soit Vrai si le 1er radio est sélectionné, soit Faux si c'est l'autre.
    Dans le 2eme onglet, j'ai utilisé le résultat contenu dans D4 du 1er onglet.

    Pour lier les bouton radio et pour créer un groupe de bouton, il faut aller dans (clique droit, si tu n'arrives pas a faire apparaitre le menu contextuel avec le clique droit, toujours dans le menu VisualBasic cliques sur le bouton représentant "une équerre, un crayon et une règle")
    Donc Clique droit sur le bouton puis Proprietés:
    *LickedCell : Pour lier une cellule au bouton
    *GroupeName : Pour donner le nom du groupe auquel le bouton appartient, sur l'enssemble des bouton ayant le meme nom, un seul peut etre coché.

    Voila bonne journée
    ++
    Qwaz

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Merci pour le travail que tu as fait et j'aurai l'occasion de m'en resservir pour me simplifier la vie.

    J'aurais une dernière question : quand j'ai voulu mettre du texte dans une colonne à droite des boutons, celui n'apparaît que si on sélectionne la colonne toute entière ? Comment on active ou on désactive cet affichage.

    Encore merci. Philippe.

  12. #12
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Tout simplement en changeant la couleur du texte, en mettant couleur automatique au lieu de blanc
    ++
    Qwaz

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer deux surfaces parallèles?
    Par sabrinacorse dans le forum LabVIEW
    Réponses: 5
    Dernier message: 23/08/2009, 10h57
  2. Réponses: 2
    Dernier message: 11/03/2009, 10h36
  3. comment créer deux instances d'une même base de données
    Par Dev_info dans le forum Administration
    Réponses: 5
    Dernier message: 19/03/2008, 18h59
  4. Comment créer deux jars avec leurs manifest
    Par pracede2005 dans le forum ANT
    Réponses: 1
    Dernier message: 22/09/2007, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo