Afficher textbox suite au choix de optionbutton

  • Initiateur de la discussion Initiateur de la discussion Tigrette121
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Tigrette121

Guest
Bonjour,

Cela fait déjà un moment que je cherche dans le forum, mais je ne trouve pas ...

J'ai un optionbutton (en fait trois choix: mère, père ou autre) je voudrais lorsque je coche un des 3 choix que les coordonnées qui ont déjà été entrées par un useform s'affiche dans les textbox du nom, prénom, téléphone...

J'espère être claire...

Je pensais qu'il suffisait de mettre ceci:

Private Sub OptionButton1_Click()

If Controls("OptionButton1").Value = True Then
Sheets("Feuil2").Select

Mère.TextBox9 = Range("o" & li).Value
Mère.TextBox10 = Range("p" & li).Value

Cells(li, 9).Value = Controls("OptionButton1").Caption
End If

End Sub

mais rien ne s'affiche ?


Merci de vos réponses, ça fait longtmps que je ne suis pas venu mais j'ai toujours eu de bons conseils.

Tigrette
 
Re : Afficher textbox suite au choix de optionbutton

Bonsoir Tigrette, le Forum

Sans le UserForm c'est difficile de comprendre...

Y a-t'il un UserForm autre que celui lancé contenant les OptionButtons qui se nommerait "Mère" ?

Sinon dans le Même UserForm on peut écrire comme ceci :

Code:
Private Sub OptionButton1_Click()
Dim li As Long
li = 1 'pour pouvoir tester
If OptionButton1.Value = True Then
    
    With Sheets("Feuil2")
    TextBox9 = .Range("O" & li).Value
    TextBox10 = .Range("P" & li).Value
    .Cells(li, 9).Value = OptionButton1.Caption
    End With
End If
End Sub

On peut employer comme toi "Controls("OptionButton1").Value" mais ce serait plus en cas de passage de Variable ou d'Argument style :

For x = 1 to 3
If Controls("OptionButton" & x ).Value = True Then
etc....


Pour ce qui est du reste, je n'aime pas trop les "Select" de feuille... Mais si c'est pour "vraiment" sélectionner la feuille alors oui c'est d'accord...

Poste un exemple au cas où...

Bonne fin de Week End

@+Thierry
 
Re : Afficher textbox suite au choix de optionbutton

Merci,

J'avais déjà enlevé "Select" de feuille pcq j'étais sur la bonne feuille. C'est que j'ai plusieurs UserForm appelés un après l'autre et qui servent à remplir des tableaux dans 3 feuilles différentes. Cela fonctionne bien, merci!

Est-ce que tu peux m'expliquer la différence entre le range et le .range pourquoi ajouter le point devant ?

Merci encore une fois de nous aider

Tigrette
 
Re : Afficher textbox suite au choix de optionbutton

J'ai oublié, est-ce qu'il y a moyen (en cas d'erreur de choix) de désélectionner par exemple le bouton mère pour choisir le bouton père. Présentement ma première sélection reste là et pas moyen de changer, est-ce qu'il faudrait que je crée un bouton d'effacement en cas d'erreur ?

Un autre gros merci à l'avance 😉

Tigrette
 
Re : Afficher textbox suite au choix de optionbutton

Bonjour Tigrette, le Forum

Je suppose que tu te trouves sur un autre fuseau horaire que l'héxagone, vu les heures de tes Posts, donc désolé de temps de réactivité...

Merci,
Est-ce que tu peux m'expliquer la différence entre le range et le .range pourquoi ajouter le point devant ?
Tigrette

Pour cette question, c'est très simple :

Code:
Private Sub OptionButton1_Click()
Dim li As Long
li = 1 'pour pouvoir tester
If OptionButton1.Value = True Then
 
    [B][COLOR=red]With Sheets("Feuil2")[/COLOR][/B]
    TextBox9 = [B][SIZE=5][COLOR=red].[/COLOR][/SIZE][/B]Range("O" & li).Value
    TextBox10 = [B][SIZE=5][COLOR=#ff0000].[/COLOR][/SIZE][/B]Range("P" & li).Value
    [B][SIZE=5][COLOR=#ff0000].[/COLOR][/SIZE][/B]Cells(li, 9).Value = OptionButton1.Caption
   [COLOR=red][B]End With[/B][/COLOR]
End If
End Sub

Ce code équivaut à écrire :

Code:
Private Sub OptionButton1_Click()
Dim li As Long
li = 1 'pour pouvoir tester
    If OptionButton1.Value = True Then
        TextBox9 = [B][COLOR=red]Sheets("Feuil2").[/COLOR][/B]Range("O" & li).Value
        TextBox10 =[COLOR=red][B] Sheets("Feuil2").[/B][/COLOR]Range("P" & li).Value
        [COLOR=red][B]Sheets("Feuil2").[/B][/COLOR]Cells(li, 9).Value = OptionButton1.Caption
    End If
End Sub

La seule grosse différence consiste en le fait que VBA va faire une instance à la Feuil2 autant de fois qu'elle sera mentionnée dans ton code, ce qui ralentit considérablement l'éxécution ainsi qu'une surconsommation de l'usage mémoire qui est sollicité également.

L'usage du With [Object] permet de faire référence qu'une seule fois à l'objet, au lieu de le faire à chaque affectation de propriété.

Par contre le "." lui est obligatoire dans le Statement entre le With et le End With, car c'est ce petit point qui va faire comprendre à VBA que le membre de l'objet est bien celui de l'objet référencé par le With du départ...

Si on l'oublie, par exemple : Range("O" & li).Value c'est le membre Range de la Feuille Active qui sera référencé... D'où pas mal de problème en perspective...


Ensuite, mais je crois que tu as déjà trouvé entre-temps, pour

J'ai oublié, est-ce qu'il y a moyen (en cas d'erreur de choix) de désélectionner par exemple le bouton mère pour choisir le bouton père. Présentement ma première sélection reste là et pas moyen de changer, est-ce qu'il faudrait que je crée un bouton d'effacement en cas d'erreur ?

Un autre gros merci à l'avance 😉

Tigrette


Pour l'effacement d'une TextBox, il suffit de lui "envoyer du vide"... Exemple :

TextBox9 = ""

Mais si on doit vider dix TextBox nommées de 1 à dix on peut avoir là une mise en oeuvre de ce dont je parlais cette nuit :

Dim x as Byte

For x = 1 to 10
Controls("TextBox" & x ).Value = ""
Next x


Bon dimanche

@+Thierry
 
Re : Afficher textbox suite au choix de optionbutton

Merci beaucoup Thierry,

Effectivement je suis du Québec donc pas sur le même fuseau horaire.

J'ai également pris du temps à revenir voir les réponses puisque je continuais d'avancer dans mon fichier...tu réponds très bien à mon questionnement.

J'ai souvent vu de tes réponses sur le forum qui m'ont souvent dépanné, mais c'est la première fois que tu me réponds directement. J'ai seulement un petit cours programmation en basic et en Pascal fait il y a une vingtaine d'année au Cegep, pour excel j'apprend au fur et à mesure de mes besoins et j'essaie de me créer des besoins car j'aime bien apprendre.

Encore une fois merci et continu de nous aider... nous tous sur le forum
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
987
Réponses
2
Affichages
892
E
  • Résolu(e)
Réponses
4
Affichages
827
Retour