yo612
Messages postés16Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention19 juillet 2007
-
21 févr. 2007 à 18:00
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
21 févr. 2007 à 20:44
Bonjour tout le monde,
Voilà ca fait 2 jours que je planche et je n'y arrive pas. Autant en VB6 qu'en VBA
Je souhaite supprimer un retour chariot qui figure dans un fichier tsv (fichiers bancaires). Ce retour chariot est mis d'office lorsque que le champ contient des informations supplémentaires. Si ce champ n'a pas d'info supplémentaires, il n'y a pas ce retour chariot. Il m'embête car quand je convertis le document en colonne il m'en compte 4 si je demande par tabulation.
Voici un exemple de fichier :
19/02/2007 "PRELEVEMENT
DE EDF PRELEVTS VILL
Le retour chariot est ici après VILL puis -900.89 (celui après -900.89 ne me dérange pas)
Dans la ligne suivante, il n'y a pas de retour chariot entre le commentaire et le montant
Entre chaque champ, il y a une tabulation
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 21 févr. 2007 à 20:44
Bon...
Nous allons donc réfléchir tous les 2 à "haute voix", si tu le veux bien...
Nous ignorons, toi comme moi, à ce stade, si tes "retours charriots" apparents sont des VBCrLf, des VbCr ou des VbLf.
Or, si le 1er séparateur est composé de 2 caractères, les 2 derniers n'en contiennent qu'un seul....
Nous allons donc procéder dans cet ordre :
1) remplacer tous les VbCrLf éventuels par "&&"
puis
2) remplacer tous les VbCr éventuels par "&&"
puis
3) remplacer tous les VbLf éventuels par "&&"
Chacune des étapes ci-dessus est réalisée par Replace
nous serons de la sorte assurés de nous "retrouver" avec une chaîne de type
Que nous reste-t-il à faire ?
Tout simplement utiliser Split avec "&&" pour générer un tableau de 4 chaines, d'indice 0 à 3
Il suffit allors de recomposer la chaine en disant qu'elle est l'indice 1 & l'indice 2 de ton tableau & vbcrlf & l'indice 3 & l'indice 4 de ton tableau.
Tu as maintenant tout ce qu'il te faut entre les mains, ami.
yo612
Messages postés16Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention19 juillet 2007 21 févr. 2007 à 18:48
Merci de la répnse aussi rapide mais.... non.. ça ne fonctionnerait pas
.
Il y a un retour chariot après le dernier montant en francs et il faut que je le garde sinon la ligne suivante sera mise à la suite de la précédente.
En fait j'aimerais bien qu'il trouve qu'entre les deux "" (cad là ou figure le commentaire) il y a un retour chariot qu'il faut supprimer. La fonction between ne correspond pas non plus.
Voilà ce que je voudrais avoir :
Date((TAB)Nom(TAB)Montant euros(TAB)Montant en francs (retour chariot à garder)
19/02/2007(TAB) "PRELEVEMENT DE EDF PRELEVTS VILL (pas de retour chariot)
00000 00000 0000Z000000*0000000000000 00000 000 EDF PR000000 000000" (TAB) -137,34(TAB) -900,89 (retour chariot existant à garder)
19/02/2007(TAB)"CHEQUE N° 6684024"(TAB) -341,41 (TAB) -2239,50