[Déplacé VB6 -> VBA]Trier une liste de prix sur excel

Résolu
Axeu Messages postés 49 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 20 juin 2014 - 29 août 2012 à 11:12
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 31 août 2012 à 11:22
bonjour à tous,

Je ne crois pas être dans la bonne catégorie mais je rencontre un problème sur Excel 2003: j'ai une liste d'entreprises avec leur chiffre d'affaires en face. il y a 500 lignes qui ont été écrites avec le signe "€" à chaque fois (je ne sais pas si ça apporte quelque chose au problème).

J'aimerai trier ces chiffre par ordre croissant, donc je selectionne la liste des prix et "trier du plus petit au plus grand" mais ça ne fonctionne pas. Pour exemple, au lieu d'avoir :
45 000
90 000
300 000
600 000
40 000 000
91 000 000

J'ai:

300 000
40 000 000
45 000
600 000
90 000
91 000 000

en bref il ne prends en compte que les 1ers chiffres et non la valeur de la case...je vois pas trop comment faire et c'est pour aider mon père donc j'ai pas vraiment le temps de passer des heures à réfléchi dessus.

Si une bonne âme a une idée, d'orientation au moins :)

Merci à vous tous et bonne journée !
Axel

13 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 août 2012 à 00:05
Salut

Parce que tes cellules sont considérées comme des chaines et pas des chiffres.
Du coup, le tri se base sur le premier caractère, celui de gauche.
Si le symbole € y est pour quelque chose :
- Fais un remplacement de € par "" (rien)
- Epure peut-être les espaces qui peuvent suivent tes chiffres, maintenant qu'ils n'ont plus de symboles derrière eux.
- Modifie le format de ta colonne pour que ce soit le format qui s'occupe d'afficher le symbole €. Les chiffres resteront des chiffres.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 août 2012 à 11:35
Bonjour,
Je ne crois pas être dans la bonne catégorie

Non ! Et pourquoi y postes-tu, alors ?
Parce que, pour cela également, tu n'as
pas vraiment le temps de passer des heures à réfléchi

Tu la connais, toutefois, la bonne catégorie (tes autres discussions) !!!!
Le tri que tu obtiens montre que ta colonne est formatée en texte et non en nombre !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Axeu Messages postés 49 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 20 juin 2014
29 août 2012 à 12:18
Parce que sinon j'aurai jamais posté sinon et que oui, j'avais pas le temps.
La bonne catégorie c'est quoi ? je me suis déjà fait allumer la dernière fois donc ça évitera de refaire l'erreur...

bref merci pour l'info, même si ça ne fonctionne pas. Il se débrouillera pour trier manuellement, je n'ai vraiment pas le temps.


Merci et Bonne continuation
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 août 2012 à 12:28
Invite-le à venir ici lui-même. Ce ne sera pas plus mal !



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
30 août 2012 à 00:08
PS : Les espaces qui démarquent les milliers : Si ces espaces ont été écrits, il faut les supprimer (Remplacer 'Espace' par "" (rien), jusqu'à ce qu'il n'y en ait plus)
Laisse le formatage de cellule s'en occuper, aussi.
0
Axeu Messages postés 49 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 20 juin 2014
30 août 2012 à 13:17
Salut à toi Jack,

Merci des conseils, j'ai tenté, mais ça ne fonctionne toujours pas

J'ai remplacé € par (rien) avec ctl+f, OK
J'ai utilisé la formule =substitute(valeur;" ";""), les espace ont aussi disparus.
J'ai changé le format, en nombre, monétaire, compta, standard, avec ou sans €, avec ou sans séparateur de milliers, rien n'y fait !

Je me retrouve avec du:
55000
560000
61000
62000
650
...

Autant ça fonctionne quand j'ouvre un nouveau fichier excel, autant là, c'est un fichier qui a tourné entre plusieurs mains dans son taf et qui lui a été transmis en dernier, donc il doit y avoir pleins de trucs qui jouent...donc bon, tant pis, ça lui trie déja le gros, et les quelques lignes ayant 1 chiffre de plus, il les triera manuellement ca l'avance déjà pas mal.

Merci des conseils en tout cas !
bonne continuation !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 16:42
pour mémoire :
Le tri que tu obtiens montre que ta colonne est formatée en texte et non en nombre !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Axeu Messages postés 49 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 20 juin 2014
30 août 2012 à 16:56
Je sais mais le format je l'ai changé 1000 fois je vous dis.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 16:57
et je viens d'essayer.
Aucun problème :
- si formatée en nombre
ou
- si formatée en monétaire (donc y comporis avec le symvole de l'Euro)


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 17:00
Si tu ne "sais pas" (donc si tu ne sais même pas regarder quel est le format de cette colonne) ===>> ne t'en mêle alors surtout pas et :
Pour mémoire également :
Invite-le à venir ici lui-même. Ce ne sera pas plus mal !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Axeu Messages postés 49 Date d'inscription jeudi 22 novembre 2012 Statut Membre Dernière intervention 20 juin 2014
30 août 2012 à 17:05
T'as pas l'ai d'avoir lu mon message de ce midi !
Je t'ai dis que j'ai aussi fait ce test avec un nouveau fichier avec des valeurs rentrées par moi et que ça fonctionne, mais pas dans CE fichier qui a tourné dans je ne sais combien de bureaux différents, les formats sont personnalisés je les ai changé ça ne fonctionnait toujours pas dans ce fichier !

Je sais quand même regarder à quel format est ma colonne !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 août 2012 à 19:38
Cela révèle beaucoup d'autres choses et notamment que :
Des cellules de la colonne concernée ont été formatées en texte
puis que
Des saisies de textes incluant le symbole de l'euro y ont été faites

Et alors, forcément, le seul reformatage ne saurait suffire.
Il te faut donc tout remettre en bon ordre avant le tri !
Ainsi, par exemple :

Dim plage_a_corriger As Range
Set plage_a_corriger = Range("C1:C10")
For Each c In plage_a_corriger 'mets ici la plage concernée
  c.Value = Val(c.Text)
Next
With plage_a_corriger
  .NumberFormat = "#,##0 $"
End With

N'effectuer le tri qu'après cette cohérence restituée.

Pour que cela n'arrive plus jamais : mets des protections ou effectue une vérification (voire cette correction) à chaque saisie nouvelle, puisque tu as affaire à des fantaisistes.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 août 2012 à 11:22
Dans les cellules contenant ces chiffres mal interprétés, quand tu cliques sur l'une d'elles, que lis-tu ?
N'y aurait-il pas un symbole ' devant chaque chiffre ?
(Ce symbole force la cellule au format texte)
Si c'est le cas, remplace ' par "" (rien)
0
Rejoignez-nous