Bonjour,
J'ai deux chaînes de caractères dans une liste:
cellule 1 => S0900000
cellule 2 => S-11010
Si je trie les cellules par ordre croissant alors j'obtiens l'ordre suivant:
S0900000
S-11010
Si j'utilise la formule =SI("S0900000"<"S-11010";"inf";0), j'obtiens "inf".
J'en déduis donc que S0900000 < S-11010.
Je veux faire une macro vba qui teste si la valeur de la cellule est supérieure ou non à la cellule suivante.
Je fais donc
var1 = "S0900000"
var2 = "S-11010"
if var1 > var2 then print "sup"
if var1 < var2 then print "inf"
Malheureusement j'obtiens "sup", alors que je devrais obtenir "inf".
Le problème vient surement du format utilisé par excel pour faire un tri et de l'opérateur '>' qui gère la comparaison différemment sous vba. J'ai l'impression que vba convertit en nombre les chaînes, ce qui donnerait 900000 et -11010, pourtant, je n'utilise pas val().
Savez-vous comment je pourrais réaliser une comparaison des chaînes qui suive la logique du tri d'excel?
Merci
matmat
J'ai deux chaînes de caractères dans une liste:
cellule 1 => S0900000
cellule 2 => S-11010
Si je trie les cellules par ordre croissant alors j'obtiens l'ordre suivant:
S0900000
S-11010
Si j'utilise la formule =SI("S0900000"<"S-11010";"inf";0), j'obtiens "inf".
J'en déduis donc que S0900000 < S-11010.
Je veux faire une macro vba qui teste si la valeur de la cellule est supérieure ou non à la cellule suivante.
Je fais donc
var1 = "S0900000"
var2 = "S-11010"
if var1 > var2 then print "sup"
if var1 < var2 then print "inf"
Malheureusement j'obtiens "sup", alors que je devrais obtenir "inf".
Le problème vient surement du format utilisé par excel pour faire un tri et de l'opérateur '>' qui gère la comparaison différemment sous vba. J'ai l'impression que vba convertit en nombre les chaînes, ce qui donnerait 900000 et -11010, pourtant, je n'utilise pas val().
Savez-vous comment je pourrais réaliser une comparaison des chaînes qui suive la logique du tri d'excel?
Merci
matmat