[RESOLU] Gestion des listes déroulantes.

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 !

zeltron24

XLDnaute Impliqué
Bonsoir le Forum,

Je fais appel à vous pour un souci de code dans un formulaire contenant deux listes déroulantes combiné entre elle; a l'ouverture du FRMAdresse, la 1ère liste me donne un choix, lorsque celui ci est fait, la 2ème me donne les possibilités offertes par mon 1èr choix (Voir feuille "Liste") Lorsque j'ai choisi dans ma 2ème liste, mon choix doit s'inscrire dans les TxtBox (Box1, Box2.......)
Puis après seulement je peux valider pour mettre le résultat dans les cellules oranges
Merci de me donner un petit coup de pouce, j'espère avoir été assez clair dans mes explications.
Cordialement
 

Pièces jointes

Dernière édition:
Re : Gestion des listes déroulantes.

Bonjour,

Essayez de remplacer l'intégralité du code du UserForm par le code suivant
Code:
Private Sub BtnClose_Click()
Unload Me
Range("A2").Select
End Sub


Private Sub UserForm_Initialize()

  Set f = Sheets("Liste")
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A3], f.[A150].End(xlUp))
    If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
  Next c
  Me.ComboBox1.List = MonDico.items
  SendKeys "{F4}"
  
End Sub

Private Sub ComboBox1_Change()
  Set f = Sheets("Liste")
  i = 0
  Me.ComboBox2.Clear
  For Each c In Range(f.[A3], f.[A150].End(xlUp))
   If CStr(c) = Me.ComboBox1 Then   '///
       Me.ComboBox2.AddItem
       Me.ComboBox2.List(i, 0) = c.Offset(, 1).Value
       Me.ComboBox2.List(i, 1) = c.Offset(0, 2).Value
       Me.ComboBox2.List(i, 2) = c.Offset(0, 3).Value
       Me.ComboBox2.List(i, 3) = c.Offset(0, 4).Value
       
       i = i + 1
   End If
  Next c
  Me.ComboBox2.SetFocus
  SendKeys "{F4}"
  
End Sub

Private Sub ComboBox2_Change()
Dim i As Long
If Me.ComboBox2.ListIndex > -1 Then
  For i& = 0 To 3
    Me.Controls("Box" & i + 1 & "") = Me.ComboBox2.Column(i)
  Next i
End If
End Sub

Private Sub BtnValider_Click()
Dim Cible As Range
Dim i As Long
Dim var As Variant
Set Cible = Range("f6")
For i& = 0 To 3
  var = Me.Controls("Box" & i + 1 & "")
  If IsNumeric(var) Then var = CDbl(var)
  Cible.Offset(i, 0) = var
Next i
Unload Me
Range("A2").Select
End Sub
 
- 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

Discussions similaires

Réponses
2
Affichages
1 K
Retour