Trier par ordre croissant des numeros

Résolu/Fermé
P.O. - 21 mai 2008 à 13:32
 P.O. - 23 mai 2008 à 11:54
Bonjour,
je vous écris pour obtenir de l'aide sur excel 2003.

Voila je dois classer par ordre croissant dans un tableau des numeros du type lettres-chiffres-chiffres-chiffres
sachant que les lettres soit c 'est F soit c'est EU

merci de bien vouloir m'aider par avance.

Cordialment Pierre-olivier

16 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mai 2008 à 13:36
bonjour,
donne un exemple, comme ca c'est pas fort concret.
A+
1
exemple F-1998-124-045 ou EU-2005-256-125 ou F-1995-156 voila

merci pour ton aide
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190 > P.O.
21 mai 2008 à 13:49
et sur lequel des nombres le tri ?
0
Insérer une colonne avec comme formule "=DROITE(A1;3)" et trier sur cette colonne
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mai 2008 à 13:56
ta solution donne les 3 derniers caractères, je crois pas que c'est ce qui est demandé.
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
21 mai 2008 à 13:58
Je sais bien, mais dans son premier exemple il disait "Lettre-Chiffre-Chiffre-Chiffre" d'où ma gourance
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190 > onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008
21 mai 2008 à 14:02
:-D
0
il faut trier d'abord par le premier chiffre ensuite par le deuxieme et enfin par le dernier

merci encore
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120
21 mai 2008 à 15:56
Créer une copie de la colonne à trier, puis "éclater" la colonne dupliquée par Données / Convertir (Délimité avec comme séparateur le trait d'union).
Trier les données et supprimer les colonnes rajoutées.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mai 2008 à 15:12
Une solution..

'supposons les données dans colonne A
'et les résultats intermédiaire dans les colonnes suivantes
''supposons les données dans colonne A
'F-1998-124-045 ou EU-2005-256-125 ou F-1995-156

Sub Trie3()
Dim i As Long, e As Long, y As Integer
Dim T
    Sheets("Feuil1").Select
    'Sépare d'abord tout..
    e = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    For i = 1 To e
        T = Split(Cells(i, 1), "-", -1)
        For y = 0 To UBound(T)
            Cells(i, y + 2) = T(y)
        Next y
    Next i
    'trie la colonne des date.. suite... Suite
    Range("A1:E" & e).Select
    Selection.Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("D1") _
        , Order2:=xlAscending, Key3:=Range("E1"), Order3:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

End Sub


Peut éventuellement ajouter une commande pour effacer les colonne C,D,E
A+
0

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

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
21 mai 2008 à 15:26
Bonjour
Essayez de créer une colonne de renvoi pour le tri qui supprime les lettres du début, soit la formule, si votre code est en A1:
=STXT(A1;3;12) ....ou + de 12 si vous riqsuez d'avoir plus de 12 caractére derrière le code lettre.
Cette formule vous renvoi les codes nombres et devrait permettre ce que vous souhaitez, soit un tri croissant dans l'ordre des chiffres, groupe après groupe
CRDLMNT
0
lermite222 merci beaucoup j'ai essayé ton programme sous VB ça marche super bien le seul probleme c'est que j'ai des informations dans les autres colonnes qui correspondend au numero malheureusement elle ne suive pas le numero
En tout cas merci beaucoup pour vos réponse sa m'aide beaucoup
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mai 2008 à 17:04
Splique un peu mieux, surement moyen d'y remédier.
0
En faite j'ai un tableau avec les numeros en colonne A et ensuite j'ai des informations qui correspondent à ces numero sur les colonnes qui suivent. comment dire ça chaque ligne correspond à un numero et ces informations.
Et aussi comment tu fais pour cacher les colonnes intermédiaire qui se creer avec l'application du programme VB que tu m'a fournie.

Merci encore beaucoup de ton aide
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 mai 2008 à 19:59
Compris
Dit-moi quel est la dernière colonne que tu emploi sur ta feuille, je modifierais en ce sens
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 213 > lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020
21 mai 2008 à 21:17
Bonsoir lermite22,

sinon tu peux insérer 3 colonnes et les supprimer ensuite.
Tant qu'il n'utilises pas plus de 253 colonnes...

eric
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
22 mai 2008 à 05:58
Je crois pas que ca irai, il veux que les autres données soient également déplacée, donc il faut modifié la largeur de la sélection.
A+
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 mai 2008 à 06:12
La voila rectifiée, elle déplace toute la ligne.
'supposons les données dans colonne A
'et les résultats intermédiaire dans les colonnes suivantes
''supposons les données dans colonne A
'F-1998-124-045 ou EU-2005-256-125 ou F-1995-156

Sub Trie3()
Dim i As Long, e As Long, y As Integer
Dim T
    Sheets("Feuil1").Select
    'Sépare d'abord tout..
    e = Range("A1").SpecialCells(xlCellTypeLastCell).Row
    For i = 1 To e
        T = Split(Cells(i, 1), "-", -1)
        For y = 0 To UBound(T)
            Cells(i, y + 250) = T(y)
        Next y
    Next i
    
    'trie la colonne des date.. suite... Suite
    Range("A1:IS" & e).Select
    Selection.Sort Key1:=Range("IQ1"), Order1:=xlAscending, Key2:=Range("IR1") _
        , Order2:=xlAscending, Key3:=Range("IS1"), Order3:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    
    'Efface les données intermédiaires
    Range("IP1:IS" & e).Select
    Selection.ClearContents
    Range("A1").Select

End Sub

En principe ce devrait être bon.
A+
0
salut,
DSl de repondre que maintenant j'ai essayé le dernier programme que tu m'as envoyé et malheureusement il m'indique erreur 1004 lorsque je le lance.
ma derniére colonne est la colonne H et je commence à partir de la ligne 13
merci
0
escuse moi ma derniére colonne du tableau est la colonne X
voila merci encore
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 mai 2008 à 10:33
1004 erreur définie par l'application.
Sur quel ligne cette erreur (la ligne en jaune quand ca plante)
Y a-t-il des lignes vides ou qui n'ont pas cette forme ?
Commencer a la ligne 13 c'est pas dificile suffit de mettre For i =13 to...
0
j'ai pas de ligne en jaune qui apparait
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 mai 2008 à 11:10
quand tu a la fenêtre avec l'erreur il y a 3 boutons, faut clic sur le bouton du milieu (trou mémoire) quelque chose comme Debugger. Tu va alors entrer dans l'IDE et voir la ligne jaune
0
j'ai que 2 boutons qui apparaissent oui ou aide et dans aide rien de trés compréhensible pour moi DSL je suis nul en informatique le truc c'est que l'ancien fichier marche super bien sauf qu'il considére pas le reste de mes colonnes. Erreur indique que ça peut venir aussi bien du programme que de mon tableur est ce que tu penses que ça peut venir du fait que j'ai des cases fusionnées???
0
onesdf Messages postés 375 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 17 octobre 2008 120
22 mai 2008 à 11:54
As-tu essayé la proposition que je t'ai donné en réponse 11 ?
0
le probleme venait bien des cellules fusionnées c'est bon ça marche maintenant merci beaucoup pour ton aide précieuse tu m'as évité de tout trier à la main ce qui m'aurait pris des heures

merci beaucoup encore une fois bonne fin de journée
0
SALUT escuse moi de te déranger encore une fois mais je suis une vrai bréle je n'arrive pas à faire fonctionner le programme dans le cas ou les numeros sont à la colonne E et commence à partir de la ligne 13 et qu'il ne commence pas par une lettre mais directement par un chiffre ex: 2008-254-569, 96-257-596, 99-548-623
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
22 mai 2008 à 19:49
Sub Trie3()
Dim i As Long, e As Long, y As Integer
Dim T
    Sheets("Feuil1").Select
    'Sépare d'abord tout..
'Trouve la dernière cellule de la colonne A1, si Autre cellule changer par exemple Par E1
    e = Range("A1").SpecialCells(xlCellTypeLastCell).Row
'Commence à la ligne 1 jusque la dernière cellule si ligne 13 remplacer 1 par 13
'(Cells(i, 1)  >> i c'est la ligne et 1 c'est la colonne, si colonne E remplacer 1 par 5
    For i = 1 To e
'Split tu sélectionne le mot et tu tape F1, ce serra plus explicite que ce que je pourrais te dire en quelques lignes.
'Mais en gros, T devient un tableau avec chaque donnée séparée, T(0)=F T(1).. La suite
        T = Split(Cells(i, 1), "-", -1)
        For y = 0 To UBound(T)
            Cells(i, y + 250) = T(y)
        Next y
    Next i
    
    'trie la colonne des data.. suite... Suite
    Range("A1:IS" & e).Select  'ICI rien changer, c'est bon

'Trie avec les critères de la colonne  IQ1, ensuite IR1, ensuite IS1 
'si tu n'a plus de lettre F ou EU devant if faut tout reculer d'une colonne, soit IP1, IQ1, IR1
    Selection.Sort Key1:=Range("IQ1"), Order1:=xlAscending, Key2:=Range("IR1") _
        , Order2:=xlAscending, Key3:=Range("IS1"), Order3:=xlAscending, Header:= _
        xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    
    'Efface les données intermédiaires
    Range("IP1:IS" & e).Select
    Selection.ClearContents
    Range("A1").Select

End Sub


Poure savoir comment ca fonctionne, mettre le curseur dans la macro et taper F8, ensuite, chaque fois que tu tape F8 l'instruction suivante est calculée, pour connaitre la valeur qu'il y a dans une variable tu promène ta souris dessus tu arras une bulle avec ce qui est dedans.
A+
0
Merci beaucoup pour toutes tes explications ça marche nickel
merci, merci beaucoup encore une fois
bonne journée à toi
0