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 SubAuriez-vous une idée de ce qui peut causer ce problème, et comment le résoudre ?
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
En vous remerciant d'avance,
Wulfram
Partager