Afficher résultats de 6 colonnes dans une ListBox

Bonjour le forum,

Je souhaite afficher une sélection comprenant 6 colonnes dans une listbox. Le nombre de lignes étant variable, je ne peux pas utiliser la propriété Rowsource de la listbox. J'essaie tant bien que mal de définir cette sélection mais je n'y arrive. J'obtiens le message d'erreur suivant :

Erreur d'exécution 381 : Impossible de définir la propriété List.Index de table de propriétés non valide.

Je ne sais pas si mon problème vient du fait que j'ajoute les items via un dico ou si ça n'a aucun rapport...

Je vous joins mon fichier en espérant que vous pourrez m'aider.

Merci d'avance.

Batoine

EDIT : Je viens de tester en ajoutant les items grâce à Additem, cela ne marche pas non plus.

Voici le fichier avec cette méthode

Bonsoir,

Tout d'abord, le nombre de colonnes de B à H est de 7, et non 6...

Donc, ça pourrait marcher si tu modifiais ton code ainsi :

...
...
Dim clg1, clg2, clg3, clg4, clg5, clg6 As Integer
Dim Plg As Range
With Workbooks("Listbox à 6 colonnes.xlsm").Sheets("Consultation")
    .Unprotect Password:="batoine"
    Set Plg = .Range("B2:H" & .Cells(Rows.Count, "B").End(xlUp).Row)
End With
'erreur vient de la définition de la propriété list de la listbox
    With Workbooks("Listbox à 6 colonnes.xlsm").Sheets("Consultation")
        Me.ListBox2.Clear
        Me.ListBox2.RowSource = Plg.Address
        Me.ListBox2.ColumnHeads = True
        Me.ListBox2.ColumnCount = 7
        Me.ListBox2.ColumnWidths = "80;0;200;150;100;100;100"
    End With
...
...

Mais, et oui, il y a un "mais", que vient faire ce code ensuite :

    'on ajoute les valeurs de département dans sa list box

'Dim J As Long
'Dim Mondico As Object
'Dim temp1
'
'    Set Ws = Workbooks("Listbox à 6 colonnes.xlsm").Sheets("Consultation")
'
'    Set Mondico = CreateObject("Scripting.dictionary")
'    For J = 2 To Ws.Range("B" & Rows.Count).End(xlUp).Row
'      Mondico(Ws.Range("B" & J).Value) = ""
'    Next J
'
'    If Mondico.Count > 0 Then
'        Me.ListBox2.List = Application.Transpose(Mondico.keys)
'        temp1 = Mondico.keys
'        Call trier(temp1, LBound(temp1), UBound(temp1)) 'on trie par ordre alphabétique
'        Me.ListBox2.List = temp1
'    End If
'_________________________________________________________________________________________________________

Pourquoi vouloir remplir de nouveau la ListBox2 ????

En commentant ce code (c'est à dire, en mettant des ' devant chaque ligne, ça fonctionne...

En as-tu vraiment besoin, ou une erreur d'objet à remplir?

Bon courage

Bonjour cousinhub,

Merci pour votre aide ! Je ne vous ai pas répondu sur l'autre sujet, faute de temps. Je le ferrai sans faute.

Je viens de corriger ces deux erreurs (la deuxième n'était pas volontaire). C'était effectivement une erreur d'objet.

Je profite de votre expertise et aimerai avoir votre avis quand à la pertinence de l'utilisation d'une listbox. J'aimerai pouvoir filtrer les données de la listbox en sélectionnant certains filtres (visible dans les PJ de mes précédents messages). Voici ce que j'ai en tête pour l'instant :

1. l'utilisateur choisis les filtres qu'il souhaite.

2. Il clique sur un bouton "recherche"

3. L'ensemble des items de la listbox sont supprimés et on rajoute seulement ceux qui correspondent aux critères.

J'ai évidemment entendu parlé des tableaux croisés dynamique et de la possibilité de créer des liens entre des données appartenant à des feuilles différentes. Cependant je ne suis pas du tout à l'aise avec.

Je me pose donc la question suivante, sachant que je n'ai plus beaucoup de temps pour finir mon projet ; les avantages des tableaux dynamiques sont-ils suffisamment conséquents et "supérieurs" à ceux de la listbox pour que je "perde" ou consacre ce précieux temps à leur apprentissage ? Ou alors la listbox peut faire l'affaire avec le processus décrit plus haut ?

C'est une question ouverte qui ne mérite pas forcément un grande réponse, mais quelques arguments m'aideraient à m'aiguiller pour la bonne réalisation de mon projet,

Merci d'avance !

Batoine

Rechercher des sujets similaires à "afficher resultats colonnes listbox"