Microsoft 365 Afficher des données déjà filtrées dans une listbox

  • Initiateur de la discussion Initiateur de la discussion jsebt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jsebt

XLDnaute Junior
Bonjour à tous,

J'ai un petit soucis avec une listbox 🙂

J'utilise une userform multipages, dans lequel j'ai un onglet(AGP) avec des lieux d'implantations. Dans cet onglet, j'ai un listbox pour afficher tous ces lieux.
Je souhaiterais n'afficher dans cette listbox uniquement les lieux correspondant a "AGP" ou "AA" dans la colonne type. Sans aucune action de filtrage manuel.
Je suis sur que c'est tout simple, mais je bloque..
Merci par avance pour votre aide.

Sébastien
 

Pièces jointes

Bonsoir Sebastien
Bonsoir le Fil ,le Forum
tu Utilises la propriété RowSource pour charger ta ListBox donc pas possible de Trier .
il te faut passer par Un tableau TabAGV (reprise des données de la feuille "Aires et AGP" pour pouvoir trier .
je regarde cela (si tu n'y arrives pas!) j'attends lol
(As tu regarder le fichier que je t'ai mis sur l'autre Fil?)
jean marie
 
Dernière édition:
Bonjour Jean Marie et le forum 🙂

Content de te revoir Jean Marie, les vacances ont été bonnes?

Merci pour ta réponse, et oui, la rowsource... C'était la solution la plus simple pour moi pour mettre en place la listbox. Je tâtonne encore beaucoup avec les tableaux. Mais je vais regarder ta solution, j'ai bien étudié ton code, et je crois que j'ai compris l'histoire des tableaux. Je vais essayer 🙂

Et pour ton fichier, j'ai regardé mes 3 sujets ouverts, mais je ne vois pas le fichier dont tu me parles, tu l'as mis dans quel fil? (Je n'aurai pas vu un de tes fichiers sans te faire un retour 🙂 A chaque fois que tu en mets un j'ai plein de surprises dedans, comme à Noel 🙂)
Bonne fin de journée à tous ou a plus tard.

Sébastien
 
Bonjour,

VB:
Option Compare Text
Dim f, Rng, TblBD()
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set d = CreateObject("Scripting.Dictionary")
  Set Rng = f.Range("A2:K" & f.[A65000].End(xlUp).Row)
  TblBD = Rng.Value
  Me.ListBox1.ColumnCount = Rng.Columns.Count
  EnteteListBox
  n = 0
  Dim Tbl()
  For i = 1 To UBound(TblBD)
     If TblBD(i, 3) = "AA" Or TblBD(i, 3) = "AGP" Then
        n = n + 1: ReDim Preserve Tbl(1 To UBound(TblBD, 2), 1 To n)
        For k = 1 To UBound(TblBD, 2): Tbl(k, n) = TblBD(i, k): Next k
     End If
   Next i
   Me.ListBox1.Column = Tbl
End Sub

Sub EnteteListBox()
  x = Me.ListBox1.Left + 8
  Y = Me.ListBox1.Top - 12
  For i = 1 To Me.ListBox1.ColumnCount
    Set lab = Me.Controls.Add("Forms.Label.1")
    lab.Caption = Rng.Offset(-1).Cells(1, i)
    lab.Top = Y
    lab.Left = x
    x = x + Rng.Columns(i).Width * 1.1
    temp = temp & Rng.Columns(i).Width * 1.1 & ";"
  Next
  temp = Left(temp, Len(temp) - 1)
  Me.ListBox1.ColumnWidths = temp
End Sub



Exemple d'affichage d'une zone filtrée dans un ListBox


Boisgontier
 

Pièces jointes

Dernière édition:
Merci Boisgontier pour ta proposition, je regarde çà.
Et bien evidemment, merci à Jean Marie, toujours là quand il faut 🙂
Pas trop de temps aujourd'hui et demain, j'essaye de m'y remettre vendredi et je vous tiens au courant.
Merci a vous 2 pour votre support en tout cas.
Bonne fin de journée

Sébastien
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Code listbox
Réponses
4
Affichages
570
Retour