Bonjour à tous,

Je rencontre un petit problème : à partir d'un code simple, je souhaitais créer une liste déroulante avec le nom de mes Worksheets, en les triant dans l'ordre alphabétique.

Mon code fonctionne quand je l’exécute pas à pas, mais impossible d'avoir le tri quand j'ouvre le formulaire !

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
Private Sub UserForm_Initialize()
Dim wks As Worksheet
Dim i As Integer
 
Call triListe
 
Me.cboGestion.ColumnCount = 1
Me.cboGestion.Clear
 
For i = 1 To Worksheets("TblTemporaire").Range("A65536").End(xlUp).Row
    Me.cboGestion.AddItem Worksheets("TblTemporaire").Range("A" & i)
Next i
    Worksheets("TblTemporaire").Range("A:A").Clear
 
    Me.cboGestion.Value = Replace(Me.Name, "Frm", "")
 
End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Public Function triListe()
Dim wks As Worksheet
Dim i As Integer
i = 1
For Each wks In Worksheets
    If Left(wks.Name, 8) = "TblListe" Then
        Worksheets("TblTemporaire").Range("A" & i).Value = Replace(wks.Name, "TblListe", "")
        i = i + 1
    End If
Next
Range("A:A").Sort key1:=Range("A:A"), order1:=xlAscending, Header:=xlNo
End Function
Auriez-vous une idée de ce qui peut causer ce problème, et comment le résoudre ?

En vous remerciant d'avance,

Wulfram