Fonction pour comparer des chiffres ? - VB/VBA/VBS - Programmation
Marsh Posté le 15-12-2005 à 16:33:35
Pour tout expliquer, je fais un tri a bulle dans un tableau "Dim toto()".
Le probleme est que je me retrouve avec dans l'ordre croissant :
K1 ; K10 ; K11 ; K2 ; K3 ; K40 ; K41 ; K4 .....
Au lieu de :
K1 ; K2 ; K3 ; K4 ; K10 ; K11 ; K40 ; K41.
Marsh Posté le 15-12-2005 à 17:25:24
ben utilise la fonction val()
Marsh Posté le 15-12-2005 à 17:31:28
Soit tu numérotes K01, K02, ..., K10...
Soit tu fais un traitement quelque part où tu évalues le numéro associé à K pour effectuer ton tri : K3 < K11 -> K & 3 < K & 11 -> val(3) < val(11)
Marsh Posté le 15-12-2005 à 17:45:54
fred20000 y'a pas de natural sort en VBA.
tu peux t'amuser à coder la fonction, tu vas voir, c'est rigolo comme tout (et ça va t'occuper un moment )
Marsh Posté le 16-12-2005 à 08:34:52
Le probleme c'est que j'ai des K10 , QQ20 , MMF22 ....
Ca reste compliqué et long à traiter votre truc pour savoir quand commence les chiffres.
Marsh Posté le 16-12-2005 à 09:38:27
Justement, ça s'appelle le "natural sort" (tu devrais trouver des algo sur le net)
Le principe n'est pas très compliqué.
A l'aide d'expressions régulières, tu sépares, dans un tableau, les éléments suivants, toujours dans cet ordre :
ponctuation
chiffres
lettres
ponctuation
chiffres
lettres
etc.
ainsi :
QQ20a ça donne :
""
""
QQ
""
20
a
Pour "WTC-11/09/2001" :
""
""
WTC
-
11
""
/
09
""
/
2001
voilà.
maintenant que t'as des tableaux contenant tes blocs séprarés et toujours dans cet ordre, tu fais un tri selon ces éléments, dans l'ordre alphabétique pour les lettres et les ponctuations, et numérique pour les nombres.
Marsh Posté le 15-12-2005 à 14:55:16
Bonjour,
Je cherche a comparer K2 avec K10.
Le probleme est que en language informatique, K10 est inferieur à K2.
Y a t il une fonction pour avoir K2<K10 ?
Merci