Bonjour à tous !

Dites moi, j'ai besoin de vos lumières.

Actuellement, j'ai modifié le ruban pour afficher une userform avec la liste des salariés dans une listbox.

Aujourd'hui, je clique sur le ruban, il ouvre l'userform et dans l'initialisation il rempli la listbox. L'appuie sur le bouton Ok fait tout fermer.
Je voudrais tout centraliser dans des Modules pour ne pas avoir de macro dans les userforms (histoire de m'y retrouver).

Là où je bloque, c'est que je voudrais remplir une listbox puis ouvrir la Userform: Sauf que je rempli une listbox qui n'existe pas, ou sinon je n'arrive pas à initialiser la listbox par le code de la macro. Quelqu'un aurait une piste?

Contenu de la macro du ruban:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Sub GpSalaries_ControleFiches(ByVal control As IRibbonControl)
 
    ControleFichesExistantes
 
End Sub
Contenu de la macro appelée par le ruban:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
Sub ControleFichesExistantes()
 
     Dim Lb_Salaries As MSForms.ListBox
 
     Call GenererListeSalaries(Lb_Salaries)
     Set Lb_Salaries = Lb_ListeSalaries
 
     Uf_ControleSalaries.Show
 
End Sub
Et mon code pour générer la liste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
Sub GenererListeSalaries(ByVal lb As MSForms.ListBox)
 
    Dim Ws As Excel.Worksheet
    Dim ListeSalaries()
    Dim Temporaire As String
    Dim i As Integer, j As Integer
 
    i = 1
    For Each Ws In ThisWorkbook.Worksheets
        If (Left(Ws.Name, 3) = "FSE") Then
            ReDim Preserve ListeSalaries(i)
            ListeSalaries(i) = Mid(Ws.Name, 7)
            i = i + 1
        End If
    Next
 
    For i = 1 To UBound(ListeSalaries) - 1                  ' Du premier nom à l'avant-dernier
        For j = i + 1 To UBound(ListeSalaries)              ' Du 2eme au dernier
            If ListeSalaries(i) > ListeSalaries(j) Then
                Temporaire = ListeSalaries(j)
                ListeSalaries(j) = ListeSalaries(i)
                ListeSalaries(i) = Temporaire
            End If
        Next j
    Next i
 
    lb.Clear
 
    For i = 1 To UBound(ListeSalaries)
        lb.AddItem ListeSalaries(i)
    Next i
 
End Sub
J'ai un beug dans cette dernière, variable objet non définie sur lb.clear.
A noter que la listbox de mon userform s'appelle "Lb_ListeSalaries".

Merci par avance !

Vincent