Bonjour,
J'ai moi aussi des extractions à la c.. de logiciels comptables qu'en plus certains utilisateurs s'amusent à bidouiller avant de me transmettre.
Résultat ; des caractères extraits non reconnus, des séparateurs de colonnes ";" qui sautent ou qui apparaissent, ...
Voici le code de reconstruction que j'utilise. Je l'ai adapté pour ta demande (de mon côté je dois scanner et concaténer x fichiers "bal*.csv" d'un répertoire).
Tu as un bouton "Parcourir" qui te permet de sélectionner un fichier d'extension ".csv" ou ".txt" et de le reformater dans un nouveau fichier de sortie enregistré dans le répertoire où est enregistré ce fichier de macro.
Le code te permet de :
- faire des remplacements de caractères ou de suites de caractères par ta propre chaine et ce en te laissant la possibilité de ne pas faire les mêmes remplacements s'il doit s'agir d'une colonne de texte ou d'une colonne de montants (par exemple remplacer ton espace insécable par un espace normal dans les colonnes de texte mais par rien ("") dans les colonnes de montants)
- normaliser le nombre de colonnes sur toutes les lignes de ton fichier de sortie (attention sur ce point ; le nombre de colonnes est normalisé (càd rendu identique en ajoutant des séparateurs (";") en fin de ligne mais tu auras peut-être des décalages (aucun problème si personne ne supprime de séparateurs chez toi))
- obtenir des montants au format 2 décimales dans tes colonnes de montants
- remplacer le "." par une "," dans tes colonnes de montants
- remplacer les espaces normaux par rien dans tes colonnes de montants
- remplacer les espaces superflus par rien devant chaque séparateur ";"
- remplacer les espaces superflus par rien derrière chaque séparateur ";"
Pour paramétrer tout cela c'est très simple :
Dans le code tu indiques :
- quels sont les numéros de colonnes de ton fichier texte qui ne contiennent que des montants
- quels sont les numéros de colonnes de ton fichier texte qui ne contiennent que du texte
Puis tu peux ajouter ou supprimer des remplacements de caractères ou suite de caractères en dupliquant ces lignes.
Pour les colonnes de montants :
Pour les colonnes de texte :
Les remplacements de caractères ne se font pas dans la ligne de titres de ton fichier d'origine.
En résumé le code :
- Supprime un éventuel fichier traité créé précédemment.
- Ouvre le fichier choisi une première fois pour le parcourir et trouver le nombre de colonnes maximum parmi toutes tes lignes et le nombre de lignes maximum puis le referme.
- Réouvre ton fichier pour transférer ligne à ligne tes données dans un tableau mémoire tout en faisant les transformations de valeurs demandées puis le referme.
- Et enfin créé un nouveau fichier (de même extension ".csv" ou ".txt" que ton fichier d'origine) nommé "Fichier traité".
PS Attention je n'ai pas pris en compte les chemins réseau ou Sharepoint. Teste en local.
Teste et dis nous.