Ordre alphabétique cell avec des chiffres vba

Résolu/Fermé
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016 - 19 avril 2016 à 16:18
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016 - 21 avril 2016 à 13:08
Bonjour,

Je souhaite classer par ordre alphabétique la colonne A

A
0123 CBD
0123 ABC
0123 CAB

Je souhaite
A
0123 ABC
0123 CAB
0123 CBD

Merci bcp

5 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
Modifié par ccm81 le 20/04/2016 à 14:03
Bonjour à tous

Un essai
http://www.cjoint.com/c/FDumckrCCkQ

Cdlmnt
1
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 avril 2016 à 18:16
Bravo cccm, je te plussoie

par contre mmxa...
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
20 avril 2016 à 20:01
Bah ....

Merci et bonne soirée à toi
0
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016
21 avril 2016 à 13:07
Juste magnifique le code
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
19 avril 2016 à 16:20
Bonjour,

Les données sont tout le temps de la même longueur?
0
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016
19 avril 2016 à 16:32
le code 0123 oui
les caractères varient
0
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016
19 avril 2016 à 18:10
j'utilise la formule =+DROITE(GAUCHE(A101;24);3)
je cherche équivalent en code vba
0
Pierre1310 Messages postés 8564 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 649
Modifié par Pierre1310 le 20/04/2016 à 08:51
https://docs.microsoft.com/fr-fr/previous-versions/visualstudio/visual-studio-2008/dxs6hz0a(v=vs.90)?redirectedfrom=MSDN

Il faut que tu teste la 6e case de ta chaine de caractère. Si il y a égalité alors la 7e puis la 8e.
Comme ce sont des majuscules, tu n'as qu'a tester le code ascii, A<B<C<D etc...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 avril 2016 à 08:55
Bonjour,

pour appliquer une méthode ou une autre:

Combien as tu de lignes dans ton tableau (environ) ?


0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
20 avril 2016 à 10:06
heu
le nombre est il toujours 0123 ?
0
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016
21 avril 2016 à 13:08
oui toujours 0123
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,
C'est du bricolage mais ça répondra à ta demande à condition que les chiffres soient suivis d'un espace... sinon faudra adapter un minimum la macro suivante :

Option Explicit


Sub ordre_alph()

Dim I As Variant

For I = Range("A1").End(xlDown).Row To Range("A" & Rows.Count).End(xlUp).Row
If Val(Cells(I, 1)) <> 0 Then
Cells(I, 24).NumberFormat = "@"
Cells(I, 24) = Mid(Cells(I, 1), 1, InStr(1, Cells(I, 1), " ") - 1)
Cells(I, 1) = Mid(Cells(I, 1), InStr(1, Cells(I, 1), " ") + 1, Len(Cells(I, 1)))

End If
Next I

Range(Cells(Range("A1").End(xlDown).Row, 1), Cells(Range("A" & Rows.Count).End(xlUp).Row, 1)).Select
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range(Cells(Range("A1").End(xlDown).Row, 1), Cells(Range("A1").End(xlDown).Row, 1)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range(Cells(Range("A1").End(xlDown).Row, 1), Cells(Range("A" & Rows.Count).End(xlUp).Row, 1))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

For I = Range("A1").End(xlDown).Row To Range("A" & Rows.Count).End(xlUp).Row
Cells(I, 1) = Cells(I, 24).Value & " " & Cells(I, 1).Value
Cells(I, 24).ClearContents
Next I

End Sub

Bonne journée
0
mmxa1995 Messages postés 28 Date d'inscription mardi 12 avril 2016 Statut Membre Dernière intervention 21 avril 2016
20 avril 2016 à 15:41
MERCI BCP
0
Content si ça t'a aidé.

Je sais pas si tu as vu le fichier de ccm81 mais il envoi du lourd.

Bonne continuation,
0