Supprimer un retour chariot dans une ligne qui contient des conditions [Résolu]

yo612 16 Messages postés mercredi 21 février 2007Date d'inscription 19 juillet 2007 Dernière intervention - 21 févr. 2007 à 18:00 - Dernière réponse : jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention
- 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

00000 00000 0000Z000000*0000000000000 00000 000 EDF PR000000 000000"    -137,34     -900,89
19/02/2007  "CHEQUE
N° 6684024"     -341,41     -2239,50

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

Merci de votre aide et votre soutien moral.
Afficher la suite 

3 réponses

Répondre au sujet
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 févr. 2007 à 20:44
+3
Utile
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

"[mailto:AAAAAAA&&BBBBBB&&CCCCCC@@DDDDDD AAAAAAA&&BBBBBB&&CCCCCC&&DDDDDD]"

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.

A toi.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de jmfmarques
jmfmarques 7668 Messages postés samedi 5 novembre 2005Date d'inscription 22 août 2014 Dernière intervention - 21 févr. 2007 à 18:05
0
Utile
Utilise Replace pour remplacer ton retour-charriot (vbcrlf) par ""
Commenter la réponse de jmfmarques
yo612 16 Messages postés mercredi 21 février 2007Date d'inscription 19 juillet 2007 Dernière intervention - 21 févr. 2007 à 18:48
0
Utile
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
Commenter la réponse de yo612

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.