liste déroulante classer alphabétiquement

ldexplorer

XLDnaute Junior
Bonjour à vous tous,

Je vous fais part de ma question.

J'ai une liste déroulante qui me permet de naviguer dans les onglets. Malheureusement à chaque fois que j'ajoute un nouvel usager, le nom est ajouté à la liste mais sans tenir compte de l'ordre alphabétique.

Comment puis je faire?

Je vous joints le classeur en zip pour que vous puissiez constater et comprendre.

Cordialement,
Lionel
 

Pièces jointes

  • CEPrestationsv3.zip
    40.5 KB · Affichages: 63

Hervé

XLDnaute Barbatruc
Re : liste déroulante classer alphabétiquement

bonjour

peut etre une piste en triant la combobox, à travers ce code :

Code:
Private Sub UserForm_Initialize()
Dim i As Integer, j As Integer
Dim temp
Dim WK As Worksheet

ComboBox1.Clear
For Each WK In ThisWorkbook.Worksheets
 If WK.Name <> "vierge" Then
  ComboBox1.AddItem WK.Name
 End If
Next WK

With ComboBox1
    For i = 1 To .ListCount - 1
        For j = 1 To .ListCount - 1
            If .List(i) < .List(j) Then
                temp = .List(i)
                .List(i) = .List(j)
                .List(j) = temp
            End If
        Next j
    Next i
End With
            
End Sub

j'ai laissé "BILANS" en tete de la combobox

salut
 

mjo

XLDnaute Impliqué
Re : liste déroulante classer alphabétiquement

Bonjour,

Ne pourrais-tu pas joindre un fichier "expurgé" pour expliquer ton problème, sans macros, sans mise en page, sans liaisons avec d'autres fichiers, sans petits boutons qui n'ont aucun rapport avec la question, ... ?

De plus, où se trouve ta liste déroulante ?
Un petit mot d'explication sur la feuille, avec ce que tu as et ce que tu souhaiterais obtenir, serait aussi le bienvenu.

On veut bien t'aider, en cherchant une réponse mais pas en cherchant le problème.

mjo
 

RICO1972

XLDnaute Occasionnel
Re : liste déroulante classer alphabétiquement

Salut ldexplorer,

pour que la macro crée une feuille nommé "sommaire" puis masque là et copie ce code :


Sub Ordonner_feuilles()
Dim i As Integer
Sheets("sommaire").Activate
For i = 2 To Worksheets.Count
Cells(i - 1, 1) = Worksheets(i).Name
Next i
Range("A1").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
For i = Worksheets.Count To 2 Step -1
a = Sheets("Sommaire").Cells(i - 1, 1)
Sheets(a).Move after:=Sheets(i)
Next i
'Sheets("Sommaire").Select
End Sub

Espérant avoir répondu ..;
@+
RICO
 

Hervé

XLDnaute Barbatruc
Re : liste déroulante classer alphabétiquement

re

rico,

pour trier les onglets d'un classeur par ordre alphabétique, sans utiliser de feuille :

Code:
Dim ws As Worksheet
Dim i As Integer

For Each ws In Worksheets
    For i = 2 To Worksheets.Count
        If Worksheets(i - 1).Name > Worksheets(i).Name Then
            Worksheets(i - 1).Move After:=Worksheets(i)
        End If
    Next i
Next ws

salut
 

Discussions similaires