Macro pour affichage listbox deux colonnes

Bonjour,

j'ai la macro suivante qui me permet de récupérer des noms dans une listbox

celle ci fonctionne bien mais je ne vois comment faire afficher les deux colonnes de sorte à afficher nom et prénom

En effet je voudrais que la colonne C remonte mais également la colonne E

les valeurs sont bien récupérées par

 a = f.Range("C2:E" & f.[F65000].End(xlUp).Row).Value
Sub Listing_Staff()
    Dim a()
    Dim f As Worksheet
    Dim MonDico As Object
    Dim i As Long, j As Long
    Dim strTemp As String

    Set f = Sheets("Staff")
    Set MonDico = CreateObject("Scripting.Dictionary")

    a = f.Range("C2:E" & f.[F65000].End(xlUp).Row).Value

    For i = LBound(a) To UBound(a)
        If a(i, 1) <> "" Then MonDico(a(i, 1)) = ""
    Next i

    Sheets("DashBoard").Staff_List.List = MonDico.keys

    'Tri le contenu du ComboBox par ordre alphabétique
    With Sheets("DashBoard").Staff_List
        For i = 0 To .ListCount - 1
            For j = 0 To .ListCount - 1
                If .List(i) < .List(j) Then
                    strTemp = .List(i)
                    .List(i) = .List(j)
                    .List(j) = strTemp
                End If
            Next j
        Next i

    End With
    Staff_List.AddItem ""
End Sub

merci par avance pour votre aide

j'ai trouvé en procédant autrement!

Bonsoir,

et comment avez vous fait ?
Ce peut être utile pour de futur demandeurs...

@ bientôt

LouReeD

Bien vu :)

Public Sub Listing_Staff()
 Dim MaCollection As New Collection
 NomTableau = "T_Staff"
 TblBd = Sheets("Staff").ListObjects(NomTableau).DataBodyRange.Value

 ColVisu = Array(4, 3)
 LargeurCol = Array(50, 45)
 Staff_List.ColumnCount = Sheets("Staff").Range(NomTableau).Columns.Count - 10
 Staff_List.ColumnWidths = Join(LargeurCol, ";")
   Dim tb_tri()
    Dim clé1_tri As Variant, clé2_tri As Variant
    Dim i1 As Integer, i2 As Integer, j As Integer, C As Integer

  Dim Tbl()
  ' En cas d'erreur
  On Error Resume Next
  ' Boucle

  For i = 1 To UBound(TblBd)

    MaCollection.Add TblBd(i, 3), TblBd(i, 3)
    ' Vérifier si erreur = doublon
    If Err.Number = 0 Then
    ' Sinon on  ajoute

        N = N + 1: ReDim Preserve Tbl(1 To UBound(TblBd, 2), 1 To N)
                 C = 0
        For Each k In ColVisu
           C = C + 1: Tbl(C, N) = TblBd(i, k)
          Next k

    Else
      Err.Clear
    End If

  Next i
  If N > 0 Then Staff_List.Column = Tbl Else Staff_List.Clear
' Tri le contenu du ComboBox par ordre alphabétique

    With Sheets("DashBoard").Staff_List
        'Création d'un tableau dynamique trié par Nom/Prénom
        ReDim tb_tri(.ListCount, .ColumnCount)
        For i1 = 0 To .ListCount - 1
           clé1_tri = .List(i1, 1) & .List(i1, 0)

            j = 0
            For i2 = 0 To .ListCount - 1
            clé2_tri = .List(i2, 1) & .List(i2, 0)
                If clé1_tri > clé2_tri Then j = j + 1
            Next i2
            For C = 0 To .ColumnCount - 1
                tb_tri(j, C) = .List(i1, C)

            Next C
        Next i1

        'Rechargement Listbox triée
        .ListFillRange = Empty
        .List = tb_tri

    End With

End Sub

Bonsoir,

merci de ce retour et proposition de code !

@ bientôt

LouReeD

Rechercher des sujets similaires à "macro affichage listbox deux colonnes"