Créer un ordre alphabétique de répertoire
Bonsoir à tous
Dans une liste de noms comment créer un ordre alphabétique pour trouver facilement des mots ?
Soit une colonne :
Accipitridae
Acrocephalidae
Aegithalidae
Alaididae
Alaudidae
Alcedinidae
Alcidae
Alcidae Brachyptae
Anatidae
Anhingidae
Apodidiae
Apterigidae
Balaenicipitidae
Bombycillidae
Brachypteraciidae
Bucconidae
Bucerotidae
Bucorvidae
Cacatuidae
Calyptomenidea
Capitonidae
Caprimulgidae
Cardinalidae
Casuariidae
Cathartidae
Charadriidae
Ciconiidae
…
Taper A pour avoir tous les A
Taper B pour avoir tous les B
Taper C pour avoir tous les C
Etc…
Merci.
Bonne soirée.
Bonjour Baldwin46
Normalement, il suffit de faire un filtre et ensuite de taper la 1ère lettre souhaitée
Bonjour Bruno
Oui, exact, merci.
Bonjour tout le monde, proposition VBA pour ceux qui veulent trier de cette façon.
Tu as deux besoins différents exprimés dans ton besoin. Construire une liste alphabétique est une chose. Extraire d'une liste les mots commençant par "A" en est une autre. On ne les aura pas forcément dans l'ordre alphabétique.
Tu trouveras ci-dessous deux macros, la première retire les doublons au format texte d'une liste en Colonne A, la seconde met l'extraction dans l'ordre alphabétique.
Faciles à adapter si tu veux conserver les doublons et/ou choisir l'ordre alphabétique inverse et/ou traiter une liste de nombres.
Option Explicit
Sub deDoublon()
Dim tablo() As String
Dim i As Integer, j As Integer, doublon As Boolean
Dim compt As Integer
Dim nl As Integer
nl = Sheets("Feuil1").Cells(Columns.Count, 1).End(xlUp).Row
ReDim tablo(0)
tablo(0) = Cells(2, 1)
compt = 0
Cells(1, 2) = "Valeurs uniques"
For i = 3 To nl
doublon = False
For j = 0 To UBound(tablo)
If tablo(j) = Cells(i, 1) Then
doublon = True
Exit For
End If
Next j
If doublon = False Then
compt = compt + 1
ReDim Preserve tablo(compt)
tablo(compt) = Cells(i, 1)
End If
Next i
' Valeurs uniques
For i = 0 To UBound(tablo)
Cells(i + 2, 2) = tablo(i)
Next i
End Sub
Sub ordreAlpha()
Dim tablo() As String, min As String
Dim i As Integer, j As Integer, doublon As Boolean
Dim compt As Integer, nl As Integer, index As Integer
nl = Sheets("Feuil1").Cells(Columns.Count, 1).End(xlUp).Row
ReDim tablo(0)
tablo(0) = Cells(2, 1)
compt = 0
Cells(1, 3) = "Ordre alphabétique"
For i = 3 To nl
doublon = False
For j = 0 To UBound(tablo)
If tablo(j) = Cells(i, 1) Then
doublon = True
Exit For
End If
Next j
If doublon = False Then
compt = compt + 1
ReDim Preserve tablo(compt)
tablo(compt) = Cells(i, 1)
End If
Next i
' Tri dans l'ordre alphabétique
For i = 0 To UBound(tablo)
min = "zzzz"
For j = 0 To UBound(tablo)
If min > tablo(j) Then
min = tablo(j)
index = j
End If
Next j
tablo(index) = "zzzz"
Cells(i + 2, 3) = min
Next i
End Sub