Combobox et optionbutton avec textbox

Bonjour,

J'ai crée une USERFORM afin d'afficher des données dans des "textbox" via une selection dans une "combobox" jusque là pas de problème.

Mais j'aimerais ajouter une dépendance via des "optionsbutton", je ne sais pas du tout comment procéder.

J'ai joint un exemple.

1. Je selectionne via une optionbutton

2. Je selectionne via une combobox en fonction de ce que j'ai coché précedemment

3. les infos s'affiche dans des textbox.

Pouvez vous m'aider ?

merci d'avance.

55exemple.xlsm (20.30 Ko)

Bonjour Baptiste, bonjour le forum,

En pièce jointe ton fichier modifié avec le code ci-dessous :

Private O As Worksheet 'déclare la variable O (Onglet)
Private TV As Variant 'déclare la variable TV (Tableau des Valeurs)

Private Sub UserForm_Initialize() 'à l'initialisation de l UserForm
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim I As Long 'déclare la variable I (Incrément)

Set O = Worksheets("Sheet1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    D(TV(I, 1)) = "" 'alimente le dictionnaire D avec les données en colonne 1 (l'Application) de TV
Next I 'prochaine ligne de la boucle
Me.ComboBox1.List = D.keys 'alimente la ComboBox1 avec la liste des éléments du dictionanire D sans doublon
End Sub

Private Sub OptionButton1_Click() 'au clic dans le bouton d'Option 1
Call ComboBox1_Change 'lance la procédure Change de la ComboBox1
End Sub

Private Sub OptionButton2_Click() 'au clic dans le bouton d'Option 2
Call ComboBox1_Change 'lance la procédure Change de la ComboBox1
End Sub

Private Sub OptionButton3_Click() 'au clic dans le bouton d'Option 3
Call ComboBox1_Change 'lance la procédure Change de la ComboBox1
End Sub

Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
Dim I As Long 'déclare la variable I (Incrément)
Dim Env As String 'déclare la variable Env (Environnement)
Dim LI As Long 'déclare la variable LI (LIgne)

If Me.ComboBox1.Value = "Application" Then Exit Sub 'si la ComboBox1 est vide, sort de la procédure
For J = 1 To 3 'boucle sur les 3 boutons d'option
    'si le bouton est coché, définit la variable Env, sort de la boucle
    If Me.Controls("OptionButton" & J).Value = True Then Env = Me.Controls("OptionButton" & J).Caption: Exit For
Next J 'prochain bouton de la boucle
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    'si la donnée colonne 1 de TV est églae à la valeur de la ComboBox1 et la donnée en colonne 2 est égale a la variable Env, définit la ligne LI, sort de la boucle
    If TV(I, 1) = Me.ComboBox1 And UCase(TV(I, 2)) = Env Then LI = I: Exit For
Next I 'prochaine ligne de la boucle
If LI = 0 Then 'condition : Si LI est nulle
    MsgBox "Vous devez sélectionner l'environnemet !" 'message
    Me.Environnement.SetFocus 'place le curseur dans la frame
    Exit Sub 'sort de la procédure
End If 'fin de la condition
For I = 1 To 6 'boucle sur les 6 textboxes
    Me.Controls("TextBox" & I).Value = O.Cells(LI, I).Value 'récupère la valeur de la cellule ligne Li colonne I dans la Textbox de la boucle
Next I 'prochaine TextBox de a boucle
End Sub

Le fichier :

GRAND MERCI !

J'ai réussi à adapter le code pour l'incorporer dans mon fichier.

Dernière chose, je voudrais que lors de la selection d'une "optionsbutton" ma "combobox" se filtre et n'affiche que les résultats liées a ce que j'ai selectionnée ?

Merci

Re,

Le code pour cela :

Private Sub ComboBox1_Change() 'au changement dans la ComboBox1
Dim D As Object 'déclare la variable D (Dictionnaire)
Dim J As Byte 'déclare la variable J (Incrément)
Dim I As Long 'déclare la variable I (Incrément)
Dim Env As String 'déclare la variable Env (Environnement)
Dim LI As Long 'déclare la variable LI (LIgne)

Set D = CreateObject("Scripting.Dictionary") 'définit le dictionnaire D
For J = 1 To 3 'boucle sur les 3 boutons d'option
    'si le bouton est coché, définit la variable Env, sort de la boucle
    If Me.Controls("OptionButton" & J).Value = True Then Env = Me.Controls("OptionButton" & J).Caption: Exit For
Next J 'prochain bouton de la boucle
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    'si la donnée colonne 2 de TV est égale à la variable Env, alimente le dictionnaire D avec la donnée en colonne 1 de TV
    If UCase(TV(I, 2)) = Env Then D(TV(I, 1)) = ""
Next I 'prochaine ligne de la boucle
Me.ComboBox1.List = D.Keys 'alimente la ComboBox1 avec les éléments du dictionnaire D sans doublons
If Me.ComboBox1.Value = "Application" Then Exit Sub 'si la ComboBox1 est vide, sort de la procédure
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    'si la donnée colonne 1 de TV est églae à la valeur de la ComboBox1 et la donnée en colonne 2 est égale a la variable Env, définit la ligne LI, sort de la boucle
    If TV(I, 1) = Me.ComboBox1 And UCase(TV(I, 2)) = Env Then LI = I: Exit For
Next I 'prochaine ligne de la boucle
If LI = 0 Then 'condition : Si LI est nulle
    MsgBox "Vous devez sélectionner l'environnemet !" 'message
    Me.Environnement.SetFocus 'place le curseur dans la frame
    Exit Sub 'sort de la procédure
End If 'fin de la condition
For I = 1 To 6 'boucle sur les 6 textboxes
    Me.Controls("TextBox" & I).Value = O.Cells(LI, I).Value 'récupère la valeur de la cellule ligne Li colonne I dans la Textbox de la boucle
Next I 'prochaine TextBox de a boucle
End Sub

Bonjour,

Je up ce sujet car c'est un peu ma problématique mais dans le sens inverse...

J'ai créé un UserForm avec d'abord une combobox, en fonction de la sélection faite dans celle-ci des TextBox ce remplisse automatiquement.

Mais je voudrais qu'une de mes Textbox change en fonction de l'OptionButton sélectionné après...

Le problème c'est que la valeur de l'optionbutton se trouve dans un tableau.

Je pense qu'il faut faire une espèce de recherchev mais en VBA, et comme je suis encore novice, si quelqu'un pouvait m'aider se serait cool

Je mets mon ficher joint

Je sélectionne le nom dans ma combobox, si je clique sur mon optionbutton1 c'est le lieu 1 qui s'affiche dans la textbox1 si c'est l'optionbutton2 alors c'est le lieu 2 qui s'affiche dans ma textbox1

Merci

Rechercher des sujets similaires à "combobox optionbutton textbox"