Listbox recherche
Résolu/Fermé
Niko ElMoche
Messages postés
3
Date d'inscription
mardi 15 novembre 2011
Statut
Membre
Dernière intervention
1 décembre 2011
-
30 nov. 2011 à 11:15
Niko ElMoche Messages postés 3 Date d'inscription mardi 15 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011 - 1 déc. 2011 à 14:50
Niko ElMoche Messages postés 3 Date d'inscription mardi 15 novembre 2011 Statut Membre Dernière intervention 1 décembre 2011 - 1 déc. 2011 à 14:50
A voir également:
- Excel vba listbox
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
1 déc. 2011 à 12:10
1 déc. 2011 à 12:10
Bonjour,
1- il te faut une listbox multicolonnes (affichage des lignes - colonnes de A à J)
2- il te faut boucler sur toutes les lignes de ta feuille et, si colonne B est égal au contenu d'une combobox (par exemple combobox1 contiendrait toutes les nuances) alors on ajoute la ligne à la listbox.
Un exemple d'une listbox multicolonnes (extrait de ce tutoriel) :
Code pour définir ta listbox, au chargement de l'userform :
Code lorsque tu choisis une nuance dans ta combobox1 :
Ces deux codes sont donnés à titre d'exemple. Ils n'ont pas été testé, donc il est probable qu'ils fonctionnent mal!!!
1- il te faut une listbox multicolonnes (affichage des lignes - colonnes de A à J)
2- il te faut boucler sur toutes les lignes de ta feuille et, si colonne B est égal au contenu d'une combobox (par exemple combobox1 contiendrait toutes les nuances) alors on ajoute la ligne à la listbox.
Un exemple d'une listbox multicolonnes (extrait de ce tutoriel) :
Code pour définir ta listbox, au chargement de l'userform :
Private Sub UserForm_Initialize() 'Définit le nombre de colonnes dans la ListBox ListBox1.ColumnCount = 10 '--- 'Définit la largeur des colonnes d'une ListBox: 'Par défaut, la largeur des colonnes est de 72 points '(72 points = 1 pouce) ListBox1.ColumnWidths = "50;80;10;60;50;70;50;60;50;70" '--- 'Il est aussi possible de définir la dimension des colonnes en centimètres 'ListBox1.ColumnWidths = "2 cm; 1,5 cm ......" '--- '--- End Sub
Code lorsque tu choisis une nuance dans ta combobox1 :
Private Sub ComboBox1_Change() Dim Col As Byte Dim Lign As Long, DrLig As Long With Sheets("Feuil1") '===> A ADAPTER le nom de la feuille DrLig = .Range("A" & Rows.Count).End(xlUp).Row For Lign = 1 To DrLig 'Ajoute une ligne et insère une donnée dans la colonne de gauche ListBox1.AddItem .Cells(Lign, 1) 'Ajoute des données dans les colonnes de droite For Col = 1 To 10 ListBox1.List(ListBox1.ListCount - 1, Col) = .Cells(Lign, Col) Next Col Next Lign End With End Sub
Ces deux codes sont donnés à titre d'exemple. Ils n'ont pas été testé, donc il est probable qu'ils fonctionnent mal!!!
1 déc. 2011 à 12:12
salut 'pijaku' :)
1 déc. 2011 à 13:04
Déjà un grand merci pour la réponse!
Par contre je suis désolé mais j'ai encore un petit problème avec (ouai, j'avais prévenu je suis débutant héhé!).
Du coup j'ai inséré tes code (en modifiant les info nécessaire pour mon fichier), et la j'ai un message d'erreur.
"Erreur d'Exécution '380': Impossible de définir la propriété List. Valeur de propriété non valide"! Du coup je me retrouve bloquer et je ne vois pas du tout quoi faire!
Je te passe le code que j'ai entrée (avec le code pour insérer les valeurs dans le ComboBox):
---
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 10
ListBox1.ColumnWidths = "50;80;10;60;50;70;50;60;50;70"
End Sub
Private Sub ComboBox1_Change()
Dim Col As Byte
Dim Lign As Long, DrLig As Long
With Sheets("TAF")
DrLig = .Range("A" & Rows.Count).End(xlUp).Row
For Lign = 1 To DrLig
ListBox1.AddItem .Cells(Lign, 1)
For Col = 1 To 10
ListBox1.List(ListBox1.ListCount - 1, Col) = .Cells(Lign, Col) ' C'est ici visiblement qu'il y a un soucis!
Next Col
Next Lign
End With
End Sub
Private Sub ComboBox1_DropButtonClick()
Call NuanceList
End Sub
Function NuanceList()
Dim etat As Integer
ComboBox1.RowSource = "Accueil!S2:S10"
End Function
---
Voila, merci d'avance pour le coup de main!
1 déc. 2011 à 14:19
Salut Bernard,
C'est toujours l'heure de l'apéro
à Niko ElMoche : je reviens dans 5 minutes...
Modifié par pijaku le 1/12/2011 à 14:37
Un classeur exemple????? Sisi c'est cadeau!
1 déc. 2011 à 14:50
Desole pour le derangement hehe et encore merci!