combobox + listbox multicolonne

max11233

XLDnaute Nouveau
Bonjour a tous,

Cela fait maintenant plusieurs jours que je travail sur l'elaboration d'une base de donnees et j'arrive quasiment a la fin cependant j'ai un probleme.C'est pourquoi je solicite votre aide.

J'ai creer une Userform, sur cette userform j'ai creer une combobox et une listbox multicolonne.

Ma combobox me sert a filtrer les donnees de ma colonne L sans doublon.
Ca c'est Ok

Ma premiere question est la suivante:

J'aimerais recuperer dans ma listbox multicolonnes les autres colonnes de ma base de donnees en fonction de ce tri. Mes colonnes vont de A a L. L etant la colonne de tri et le nombre de ligne est variable

2eme question: apres avoir recupere mes donnees dans cette listbox multicolonne j'aimerais recuperer celle ci dans des textbox donc une pour chaque colonne en fonction de la ligne selectionner dans ma lisbox.

Avez vous une idees pour repondre a ces deux questions ou un petit code qui traine par la?

En attente d'une reponse je vous souhaite une bonne journee

Max
 
Dernière édition:

bqtr

XLDnaute Accro
Re : combobox + listbox multicolonne

Bonjour Max,

Essaye avec ceci:
Code:
Private Sub ComboBox1_Click()
Dim Tablo, k As Long, x As Long, y As Byte, TabList()

ListBox1.ColumnCount = 12

Tablo = Range("A2:L" & Range("A65536").End(xlUp).Row)
For k = 1 To UBound(Tablo)
   If Tablo(k, 12) = ComboBox1 Then
      ReDim Preserve TabList(1 To 12, x)
        For y = 1 To 12
          TabList(y, x) = Tablo(k, y)
      Next
      x = x + 1
   End If
Next

ListBox1.List = Application.Transpose(TabList)

End Sub

Private Sub ListBox1_Click()
Dim k As Byte

For k = 1 To 11
  Controls("TextBox" & k) = ListBox1.Column(k - 1, ListBox1.ListIndex)
Next

End Sub
Rajoute ces deux procédures dans le module de code de ton Userform.

La première te permet de remplir la listbox. Ta base est mise dans un tableau (Tablo). On boucle sur les lignes du tableau et si la valeur de la 12 ème colonne est égale au combobox on alimente un deuxième tableau (TabList). A la fin ce dernier est alors transposé dans la ListBox.

La deuxième procédure alimente les 11 TextBox. On boucle sur les 11 ère colonnes de la ligne sélectionnée dans la ListBox.

A+
 

max11233

XLDnaute Nouveau
Re : combobox + listbox multicolonne

Bonjour Max,

Essaye avec ceci:
Code:
Private Sub ComboBox1_Click()
Dim Tablo, k As Long, x As Long, y As Byte, TabList()

ListBox1.ColumnCount = 12

Tablo = Range("A2:L" & Range("A65536").End(xlUp).Row)
For k = 1 To UBound(Tablo)
   If Tablo(k, 12) = ComboBox1 Then
      ReDim Preserve TabList(1 To 12, x)
        For y = 1 To 12
          TabList(y, x) = Tablo(k, y)
      Next
      x = x + 1
   End If
Next

ListBox1.List = Application.Transpose(TabList)

End Sub

Private Sub ListBox1_Click()
Dim k As Byte

For k = 1 To 11
  Controls("TextBox" & k) = ListBox1.Column(k - 1, ListBox1.ListIndex)
Next

End Sub
Rajoute ces deux procédures dans le module de code de ton Userform.

La première te permet de remplir la listbox. Ta base est mise dans un tableau (Tablo). On boucle sur les lignes du tableau et si la valeur de la 12 ème colonne est égale au combobox on alimente un deuxième tableau (TabList). A la fin ce dernier est alors transposé dans la ListBox.

La deuxième procédure alimente les 11 TextBox. On boucle sur les 11 ère colonnes de la ligne sélectionnée dans la ListBox.

A+


J'ai peut etre parle un peu trop vite, je suis sur que c'est pas grand chose mais il y a un probleme dans ton code pierre olivier.
Je sais pas si tu l'as teste mais pour les valeurs qui aparaisent qu'une seule fois dans ma colonne L, les donnees des colonnes de A a K se mette sur une seule colonne dans la listbox au lieu de s'afficher en ligne et donc cela me donne une erreur.

Il y a egalement un probleme lorsque ma reference en L se compose de 3 chiffres, un message d'erreur aparait alors et me ramene a cette ligne de programme :
ListBox1.List = Application.Transpose(TabList)

Sais tu d'ou ces deux erreurs peuvent venir?

Max
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : combobox + listbox multicolonne

Bonjour Max, Pierre Olivier

en l'absence de Pierre Olivier, essaye peut être comme suit :

Code:
Dim Tablo, k As Long, x As Long, y As Byte, TabList()

ListBox1.ColumnCount = 12

Tablo = Range("A2:L" & Range("A65536").End(xlUp).Row)
For k = 1 To UBound(Tablo)
   If [B][COLOR="Red"]CStr(Tablo(k, 12)) [/COLOR][/B]= ComboBox1 Then
      ReDim Preserve TabList(1 To 12, x)
        For y = 1 To 12
          TabList(y, x) = Tablo(k, y)
      Next
      x = x + 1
   End If
Next

ListBox1.[COLOR="red"][B]Column [/B][/COLOR]= TabList

bonne fin d'après midi
@+
 

max11233

XLDnaute Nouveau
Re : combobox + listbox multicolonne

Bonjour Max, Pierre Olivier

en l'absence de Pierre Olivier, essaye peut être comme suit :

Code:
Dim Tablo, k As Long, x As Long, y As Byte, TabList()

ListBox1.ColumnCount = 12

Tablo = Range("A2:L" & Range("A65536").End(xlUp).Row)
For k = 1 To UBound(Tablo)
   If [B][COLOR="Red"]CStr(Tablo(k, 12)) [/COLOR][/B]= ComboBox1 Then
      ReDim Preserve TabList(1 To 12, x)
        For y = 1 To 12
          TabList(y, x) = Tablo(k, y)
      Next
      x = x + 1
   End If
Next

ListBox1.[COLOR="red"][B]Column [/B][/COLOR]= TabList

bonne fin d'après midi
@+

Merci pierre pour ces arrangements maintenant tout fonctionne parfaitement.

Merci encore à vous deux.

Bon weekend
 

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb