Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1625 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA]Comparaison de chaines suite à un tri. [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA]Comparaison de chaines suite à un tri. [RESOLU]

n°1604386
matmat79
Posté le 27-08-2007 à 13:04:49  profilanswer
 

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


Message édité par matmat79 le 27-08-2007 à 14:33:24
mood
Publicité
Posté le 27-08-2007 à 13:04:49  profilanswer
 

n°1604411
durkheim
Posté le 27-08-2007 à 14:07:55  profilanswer
 

StrComp ?

n°1604435
matmat79
Posté le 27-08-2007 à 14:30:56  profilanswer
 

Merci pour la réponse et voici un complément d'explication trouvé sur un autre site.
 
Le problème vient du fait que les module VBA sont par défaut "calibrés" en Option Compare Binary.
Il y a donc deux solutions:
- ajouter en entête du module => Option Compare Text qui impacte le type de comparaison par défaut pour tout le module
ou
- utiliser StrComp avec la méthode "Text" (ce que je vais faire)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA]Comparaison de chaines suite à un tri. [RESOLU]

 

Sujets relatifs
Tableau croisé et VBAMon COOKIE revient par defaut [RESOLU]
Probleme COOKIE site multi langue[RESOLU][résolu] PHP : lire une page web et séparation paramètres
[VBA] récupérer valeur couleur automatique[RESOLU]Comptage impossible ou pb avec mon "left join" ?
[VBA] Via Macro Excel, Ouvrir & Editer fichier CSV [RÉSOLU]NET USE Batch & Tache Planifiée [Résolu]
[ASP.NET][C#][Résolu]données d'un datagridview 
Plus de sujets relatifs à : [VBA]Comparaison de chaines suite à un tri. [RESOLU]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR