Trier la liste créée (lettre et chiffre) sous VBA

  • Initiateur de la discussion Initiateur de la discussion Poussin
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Poussin

XLDnaute Occasionnel
Bonjour à tous, j'ai une base de données sous forme de tableau, je récupère tous les éléments de la première colonne afin de les avoir dans ma liste de UserForm jusque là ça marche nickel. Maintenant à l'intérieur de cette liste qui est constitué d'éléments sous la forme de 8 chiffres (00000000) je voudrais les trier dans l'ordre et supprimer les éléments qui reviennent plusieurs fois. Voici mon code :

Code:
Private Sub UserForm_Initialize()

Dim I As Integer
Dim L As Integer
    L = Evaluate("CountA(A:A)")

For I = 2 To L
        ComboBox2.AddItem Sheets("Feuil1").Cells(I, 1)
Next

End Sub

Je vous remercie pour votre aide. Bonne journée à vous.
 
Re : Trier la liste créée (lettre et chiffre) sous VBA

Bonjour,

je te propose un léger aménagement de ta macro :

VB:
Private Sub UserForm_Initialize()

Dim I As Integer
Dim L As Integer
    L = Evaluate("CountA(A:A)")
Range("B:D").Insert
Range("A2:A" & L).AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("C1"), Unique:=True
    L = Evaluate("CountA(C:C)")
Range("C1").Sort key1:=Range("C1"), order1:=xlAscending
For I = 1 To L
        ComboBox2.AddItem Sheets("Feuil1").Cells(I, 3)
Next
Range("B:D").Delete

End Sub
 
Bonjour,

Je voudrais éviter de créer les 2 colonnes car j'ai 36 colonnes pleines. Je voudrais faire un tri en quelque sorte fictif qui servirait seulement pour l'utilisateur dans la UserForm.

MErci beaucoup pour ta réponse rapide.
 
Re : Trier la liste créée (lettre et chiffre) sous VBA

Re,

ouai, ben comme ceci si tu préfères :
VB:
Private Sub UserForm_Initialize()

Dim I As Integer
Dim L As Integer
    L = Evaluate("CountA(A:A)")
Range("A2:A" & L).AdvancedFilter Action:=xlFilterCopy, copytorange:=Range("IV1"), Unique:=True
    L = Evaluate("CountA(C:C)")
Range("IV1").Sort key1:=Range("IV1"), order1:=xlAscending
For I = 1 To L
        ComboBox2.AddItem Sheets("Feuil1").Cells(I, 256)
Next
Range("IV").Clear

End Sub
 
Re : Trier la liste créée (lettre et chiffre) sous VBA

Bonjour à tous

VB:
Private Sub UserForm_Initialize()
tablo = Range("A1:A" & Range("A1").CurrentRegion.Rows.Count)
Set dico = CreateObject("scripting.dictionary")
For n = LBound(tablo, 1) To UBound(tablo, 1)
  x = tablo(n, 1)
  dico(x) = x
Next n
a = dico.keys
For n = LBound(a) To UBound(a)
  For m = LBound(a) To UBound(a)
    If a(m) > a(n) Then
      temp = a(m)
      a(m) = a(n)
      a(n) = temp
    End If
  Next m
Next n
ComboBox1.List = a
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

B
  • Question Question
Réponses
3
Affichages
1 K
Réponses
5
Affichages
1 K
W
Réponses
11
Affichages
2 K
G
Réponses
7
Affichages
1 K
gfgghbhg
G
Retour