Comment renvoyer une valeur à partir d'un option button ?

phmad

XLDnaute Nouveau
Bonjour à tous,

Je me débats pour comprendre et trouver comment on choisi l'affichage et/ou le renvoi d'une valeur, à partir de l'activation d'un "option button".

Première option et première question : je crée un cadre userform dans VBA, avec deux "option buttons" dont le caption est "oui" pour le premier, "non" pour le second, que je met ensuite dans un cadre.

Mon problème : je ne sais pas comment les rapatrier sur ma feuille Excel ?

Deuxième option et deuxième question : je crée mes boutons directement sur ma feuille intitulées "questionnaire" (voir mon fichier joint), mais il n'affiche alors aucune valeur. Celle-ci est seulement visible quand je sélectionne la colonne dans laquelle la cellule du bouton se trouve ; mais à quoi correspond elle ?

Je sais visualiser le code ou les propriétés de chacun des boutons, mais je ne sais pas quoi changer dans le code, pour voir apparaître la valeur "1" pour le "oui" activé, et "2" pour le "non" activé.

J'ai besoin de ces valeurs pour les transformer dans ma feuille intitulée "échelles", dans laquelle chaque "1" renverra un "oui" (colonne D de la feuille Echelle) et chaque "2" renverra un "non".

Mais on pourrait aussi imaginer que le code renvoie directement un "oui" pour le premier bouton activé et un "non" pour le même bouton désactivé (ou le deuxième activé, ce qui revient au même), ce qui rendrait inutile la transformation des 1 en oui et des 2 en non.

Merci de m'éclairer. Je n'ai rien pu trouver dans mes livres VBA pour Excel ou sur le net.

Ci-joint le formulaire en question.
 

Pièces jointes

  • Mon Questionnaire avec ses boutons orphelins.zip
    29.9 KB · Affichages: 115
  • Mon Questionnaire avec ses boutons orphelins.zip
    29.9 KB · Affichages: 112
  • Mon Questionnaire avec ses boutons orphelins.zip
    29.9 KB · Affichages: 121

skoobi

XLDnaute Barbatruc
Re : Comment renvoyer une valeur à partir d'un option button ?

Bonsoir phmad,

pour ce qui est du userform, ajoute un bouton et écrit ce code:

Code:
Private Sub CommandButton1_Click()
[D4].Value = IIf(OptionButton1, "oui", "non")
End Sub
Cela écrira "oui" en D4 si l'option "oui" et "non" dans le cas contraire (donc que l'option "non" est choisi).
IIf est l'équivalent du SI() d'excel.
 

phmad

XLDnaute Nouveau
Re : Comment renvoyer une valeur à partir d'un option button ?

Je te remercie skoobi, mais en fait je ne sais pas comment exporter un bouton créé dans userform dans une feuille excel.

J'ai enfin pu retrouver la manip pour accéder au code du bouton 1 de la cellule C6 de la feuille Questionnaire, j'ai copié ton code et cela fonctionne bien dans la feuille des échelles.

Et cette valeur 3 qui s'affiche en C6. D'où vient-elle ?

Maintenant, comment je copie les autres frame sur les colonnes C et D sans tout modifier de ton code ?

Merci de ton aide. Philippe.
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : Comment renvoyer une valeur à partir d'un option button ?

Re,
je ne sais pas comment exporter un bouton créé dans userform dans une feuille excel.
Je ne comprends pas ce que tu veux dire...
Copier coller se bouton peut-être?
Quant à accéder au code d'un bouton à partir d'une feuille excel, j'ai dû découvrir la manip sans le faire exprès. Impossible de retrouver comment ?
Bouton droit dessus puis affecter une macro.
 

phmad

XLDnaute Nouveau
Re : Comment renvoyer une valeur à partir d'un option button ?

Je te renvoie le fichier modifié par ton code.

Mais dès que je copie le cadre avec les boutons, les boutons ne sont plus indépendants sur la colonne et j'ai un message qui s'affiche me disant qu'une macro est en cours, mais qu'elle ne peut pas s'exécuter ?

Mon premier pb est résolu par ton code. Merci bcp.

Mon second pb est : comment reproduire chaque frame sur plusieurs cellules sans modifier leurs propriétés ? Merci.
 

Pièces jointes

  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 102
  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 85
  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 103

phmad

XLDnaute Nouveau
Re : Comment renvoyer une valeur à partir d'un option button ?

Citation: "je ne sais pas comment exporter un bouton créé dans userform dans une feuille excel".


Cela veut dire que quand je crée des contrôles en affichant VBA, je ne sais pas quoi en faire ensuite, comment les enregistrer et surtout comment les exporter dans une feuille Excel.

J'ai essayé de modifier ton code, car certaines cellules affichent encore un "non", mais cela ne fonctionne pas.

Que signifient les crochets dans ton code, pourquoi spécifier un numéro de cellule et comment le programme sait qu'il s'agit d'une autre feuille ?

Merci.
 
Dernière édition:

phmad

XLDnaute Nouveau
Re : Comment renvoyer une valeur à partir d'un option button ?

J'ai enfin pu trouver la solution en modifiant le code dans mes cellules réceptrices, et cela fonctionne !!!

Par contre, je ne comprends pas trop la logique car j'ai dû taper :

=SI(Questionnaire!$C1="oui";"non";"oui")

Ce qui pour moi signifie : si oui, alors "non", et sinon "oui", et c'est l'inverse qui se produit ?
 

phmad

XLDnaute Nouveau
Re : Comment renvoyer une valeur à partir d'un option button ?

Désolé, mais je me galère encore avec le renvoi dans la colonne D de la feuille "Echelles", qui n'affiche pas les bons renvois.

Merci de votre aide pour à la fois trouver le bon code dans les boutons de la feuile questionnaire et la bonne fonction dans la colonne de réception des "oui" ou des "non".

Dernière modif faites dans le fichier joint.
 

Pièces jointes

  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 85
  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 92
  • Mon Questionnaire avec ses boutons orphelins.zip
    28.3 KB · Affichages: 112

skoobi

XLDnaute Barbatruc
Re : Comment renvoyer une valeur à partir d'un option button ?

Re bonjour,

J'ai essayé de modifier ton code, car certaines cellules affichent encore un "non", mais cela ne fonctionne pas.

Que signifient les crochets dans ton code

Les crochets remplace Range(......).
comment le programme sait qu'il s'agit d'une autre feuille ?
En fait il faut la préciser:
Code:
Private Sub CommandButton1_Click()
[COLOR=Blue][B]Sheets("Questionnaire").[/B][/COLOR]Range("D4").Value = IIf(OptionButton1, "oui", "non")
End Sub
Par contre, je ne comprends pas trop la logique car j'ai dû taper :

=SI(Questionnaire!$C1="oui";"non";"oui")

Ce qui pour moi signifie : si oui, alors "non", et sinon "oui", et c'est l'inverse qui se produit ?
En C1 de la feuille Questionnaire les options renvoie soit 1 ou 2 donc:
Code:
=SI(Questionnaire!$C1=[B][COLOR=Blue]1[/COLOR][/B];"oui";"non")
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 210
Membres
103 158
dernier inscrit
laufin