Tableau excel en liste dans UserForm
Résolu
cestsupergenial
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
cestsupergenial Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
cestsupergenial Messages postés 17 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Tableau excel en liste dans UserForm
- Liste déroulante excel - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Excel liste déroulante en cascade - Guide
- Imprimer tableau excel sur une page - Guide
3 réponses
Bonjour CSG, bonjour le forum,
Essaie avec le code ci-dessous :
Essaie avec le code ci-dessous :
Private TV As Variant 'déclare la variable TV (Tableau des Valeurs) Private Sub UserForm_Initialize() 'à l'initialisation de l'UserForm Dim O As Worksheet 'déclare la variable O (Onglet) Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'déclare la variable I (Tableau des Valeurs) Set O = Worksheets("BD") '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) '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 valeur des données en comlonne 1 de TV Next I 'prochaine ligne de la boucle 'alimente la ComboBox [champ_groupe] avec la liste des éléments du dictionnaire D sans doublon Me.champ_groupe.List = D.keys End Sub Private Sub champ_groupe_Change() Dim D As Object Dim I As Integer Me.champ_marque.Clear Me.champ_modele.Clear Me.champ_date.Clear Me.champ_stock.Clear Set D = CreateObject("Scripting.Dictionary") For I = 2 To UBound(TV, 1) If TV(I, 1) = Me.champ_groupe Then D(TV(I, 2)) = "" Next I Me.champ_marque.List = D.keys End Sub Private Sub champ_marque_Change() Dim D As Object Dim I As Integer Me.champ_modele.Clear Me.champ_date.Clear Me.champ_stock.Clear Set D = CreateObject("Scripting.Dictionary") For I = 2 To UBound(TV, 1) If TV(I, 1) = Me.champ_groupe And Me.champ_marque = TV(I, 2) Then D(TV(I, 3)) = "" Next I Me.champ_modele.List = D.keys End Sub Private Sub champ_modele_Change() Dim D As Object Dim I As Integer Me.champ_date.Clear Me.champ_stock.Clear Set D = CreateObject("Scripting.Dictionary") For I = 2 To UBound(TV, 1) If TV(I, 1) = Me.champ_groupe And Me.champ_marque = TV(I, 2) _ And Me.champ_modele = TV(I, 3) Then D(TV(I, 5)) = "" Next I Me.champ_date.List = D.keys End Sub Private Sub champ_date_Change() Dim D As Object Dim I As Integer Me.champ_stock.Clear For I = 2 To UBound(TV, 1) If TV(I, 1) = Me.champ_groupe And Me.champ_marque = TV(I, 2) _ And Me.champ_modele = TV(I, 3) And Me.champ_date = CStr(TV(I, 5)) Then Me.champ_stock.AddItem TV(I, 4) Next I End Sub
Bonjour a tous,
Fichier sans dictionary, avec subroutines de recherche fonction objet
https://www.cjoint.com/c/GBnkGNoCgRf
Fichier sans dictionary, avec subroutines de recherche fonction objet
https://www.cjoint.com/c/GBnkGNoCgRf