Format de cellule fichier csv/xls

Signaler
Messages postés
2
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
20 août 2008
-
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
-
Bonjour,

Je suis en train de creer une macro en VBA, sous Excel, qui permet de traiter des informations banquaires venant de plusieurs fichiers sources. Certains de ses fichiers ont une extensions xls, les autres une extension csv.
Il se trouve que je dois m assurer de l'egalité de deux cellules appartenant a deux fichiers différents (l'un xls, l autre csv). Seulement, meme lorsque les cellules ont la meme valeur, l egalité n est pas detecté. J ai pensé a un probleme de format de cellule, et j ai essayé d'imposer un format texte au cellules mais ca ne marche toujours pas. Chose etrange, il en va de meme losrque je fais une recherche "manuelle" (Ctrl+f) la cellule n est pas trouvée. La seule solution que j ai trouvée qui me permet de resoudre le probleme, est de trier les données colonnes par colonnes. Et la Ô miracle, la macro reconnait l egalité des cellules. Alors que la fonction trier n est pas censée modifier le format des cellules... Si?
Est ce que vous sauriez d'ou cela peut venir et ce que je peux faire pour resoudre mon probleme ?
A defaut, sauriez vous comment programmer un trie sur une colonne?

Je vous remercie par avance de votre aide

Hélie.

3 réponses

Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonsoir HelieCe,

Je doute fort qu'un tri a résolu ce probleme.
Quand j'applique une égalité , j'utilise Trim pour enlever les espaces vides à droite
et à gauche du mots.
"Text" n'est pas égal à " Text   " car il y a des blancs.
Difficile à dire sans voir le programme et sans voir comment sont disposées les données.Je ne peux pas en dire davantage.
Concernant , le tri d'une colonne:
Par exemple , tri croissant du tableau Excel [A1:D20] par partir de A1 c'est à dire
colonne A.
Worksheets(1).Range("A1:D20").Sort _
   Key1:=Worksheets(1).Range("A1"), order1:=xlAscending
Pour un tri decroissant pour le même tableau ,mettre  order1:=xlDescending

Bonne suite
A++
Messages postés
2
Date d'inscription
mardi 19 décembre 2000
Statut
Membre
Dernière intervention
20 août 2008

Je te remercie pour ta reponse.

J utilisais deja un trim pour retirer les espaces. J ai reussi a trouver une solution en contournant le probleme, en modifiant les propriétés des fichiers sources et utilisant des variables string intermediaires... Mais je comprend toujours pas d ou le probleme vient.
Cependant, je te remercie beaucoup pour le code du tri. Cela me sera tres utile pour la suite.

@+
Hélie
Messages postés
372
Date d'inscription
vendredi 27 juillet 2007
Statut
Membre
Dernière intervention
22 juillet 2013
1
Bonsoir ,
Sans le code , difficile de répondre !
A+