Listbox recherche
Résolu
Niko ElMoche
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Niko ElMoche Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Niko ElMoche Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je debute dans VBA Excel 2003, et la je plante vraiment sur un probleme!
Voici mon probleme:
J'ai une base de donnee sur un stock acier (ou on peu retrouver dans la colonne A le numero de reference de l'acier, la colonne B la nuance de l'acier, ... et plein d'autre info jusqu'a la colonne J)
J'ai un UserForm pour effectuer une recherche par un numero de reference. Jusque la aucun soucis!
A partir de maintenant il m'a ete demande d'effectuer une recherche par nuance! Et la c'est plus dur hehe! Puisque je voudrai afficher dans un listbox dans l?userform toute les lignes ou apparaissent la recherche!
Alors si quelqu'un peu me donner un coup de main sur le code ca pourrai etre super cool!
Bon voila j'espere que j'ai ete assez clair!
A
Je debute dans VBA Excel 2003, et la je plante vraiment sur un probleme!
Voici mon probleme:
J'ai une base de donnee sur un stock acier (ou on peu retrouver dans la colonne A le numero de reference de l'acier, la colonne B la nuance de l'acier, ... et plein d'autre info jusqu'a la colonne J)
J'ai un UserForm pour effectuer une recherche par un numero de reference. Jusque la aucun soucis!
A partir de maintenant il m'a ete demande d'effectuer une recherche par nuance! Et la c'est plus dur hehe! Puisque je voudrai afficher dans un listbox dans l?userform toute les lignes ou apparaissent la recherche!
Alors si quelqu'un peu me donner un coup de main sur le code ca pourrai etre super cool!
Bon voila j'espere que j'ai ete assez clair!
A
A voir également:
- Excel vba listbox
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
1 réponse
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!!!
salut 'pijaku' :)
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!
Salut Bernard,
C'est toujours l'heure de l'apéro
à Niko ElMoche : je reviens dans 5 minutes...
Un classeur exemple????? Sisi c'est cadeau!
Desole pour le derangement hehe et encore merci!