Macro pour séparer des données excel

Fermé
Rick1810 Messages postés 6 Date d'inscription mardi 12 novembre 2019 Statut Membre Dernière intervention 14 octobre 2021 - Modifié le 14 oct. 2021 à 11:03
yg_be Messages postés 20753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 décembre 2022 - 14 oct. 2021 à 15:41
Bonjour,

J'ai des données dans une cellule excel, près de 10.000 lignes, que je souhaite séparer en 6 colonnes.

Il s'agit de données d'un relevé bancaire de près de 300 pages, avec des libellés aux formats aussi bien identiques que différents. Je peux par exemple avoir 500 lignes ayant un libellé similaire, 200 autres ayant également un libellé similaire et ainsi de suite.

Toutes les données doivent cependant être séparées pour être rangées dans des colonnes bien distinctes ( code service, date de valeur, libellé de l'opération, date d'opération, débit et crédit).

J'ai procéder en convertissant les données mais c'est un travail demandant énormément de temps.

Je souhaite donc avoir l'aide de quelqu'un qui s'y connaît en macro pour m'aider sur ce sujet.

J'espère avoir été le plus précis possible.

Vous en remerciant d'avance.

PS: Je tiens à préciser que je suis débutant dans le monde des macros
A voir également:

1 réponse

jordane45 Messages postés 36598 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2022 4 420
14 oct. 2021 à 11:22
Bonjour,

Avant tout ... comment sais tu quelle donnée doit aller dans quelle colonne ? Il y a un séparateur utilisable ?
Si oui, pas besoin de macro ... la fonction "convertir" d'excel devrait suffire ...
Si non... comment comptes tu "déterminer" où "couper" les données ?

0
Rick1810 Messages postés 6 Date d'inscription mardi 12 novembre 2019 Statut Membre Dernière intervention 14 octobre 2021
14 oct. 2021 à 12:07
Bonjour Jordane,

Pour savoir comment répartir les données j'ai une version du fichier final en pdf donc je m'en inspire.
Maintenant pour savoir où couper les données je me base sur le nombre de caractères et le format de chaque donnée. Par exemple pour les codes services le nombre de caractères est toujours 6, la date de valeur est toujours en format j-m, le libellé de l'opération fini toujours pas le numéro du compte, la date d'opération est toujours en format jj-mm-aa et les débits et les crédits sont toujours isolés. Et toutes les données se suivent à chaque fois.
Et comme tu dis la fonction convertir pourrait suffire seulement si toutes les données ayant le même format et même nombre de caractères se suivaient. Comme je l'ai dit dans l'annonce, je peux avoir 500 lignes avec le même format et même nombre de caractères mais ces lignes ne se suivent pas. Donc pour procéder avec la fonction convertir je dois m'y prendre à plusieurs reprises.
0
jordane45 Messages postés 36598 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2022 4 420 > Rick1810 Messages postés 6 Date d'inscription mardi 12 novembre 2019 Statut Membre Dernière intervention 14 octobre 2021
14 oct. 2021 à 12:14

Et comme tu dis la fonction convertir pourrait suffire seulement si toutes les données ayant le même format et même nombre de caractères se suivaient

Je parlais d'avantage d'un séparateur commun... genre un point-virgule, un pipe ... mais visiblement ce n'est pas le cas.

Donc ...
Tu nous dis :
Par exemple pour les codes services

Et comment tu sais qu'une ligne concerne un code service ?


Tu te rends compte que pour l'instant on a toujours pas vu à quoi ressemble tes données ?
A un moment, il faudra que tu nous fournisses un fichier d'exemple .. sans ça il sera compliqué de te venir en aide.



Mais en gros :

Tu bouccles sur chaque ligne de ton fichier

En fonction de si c'est un code de service... tu découpes ta chaine en fonction des nombres de caractères souhaites

Tu fais la même chose pour un autre "type" de code
... et idem pour chaque "type" de données que tu as dans ton fichier..




Reviens nous voir avec un fichier d'exemple et pense à y inclure le code que tu auras tenté de réaliser....
0
Rick1810 Messages postés 6 Date d'inscription mardi 12 novembre 2019 Statut Membre Dernière intervention 14 octobre 2021 > jordane45 Messages postés 36598 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2022
14 oct. 2021 à 15:16
https://www.cjoint.com/c/KJonkVaSTUY

Un lien vers un fichier d'exemple.

Les lignes du haut correspondent aux données brutes. Et en bas c'est le résultat que je souhaite obtenir.

Maintenant pour le code je n'ai rien en tête.
0
yg_be Messages postés 20753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 2 décembre 2022 1 272 > Rick1810 Messages postés 6 Date d'inscription mardi 12 novembre 2019 Statut Membre Dernière intervention 14 octobre 2021
Modifié le 14 oct. 2021 à 15:41
bonjour,
pourrais-tu vérifier la ligne avec
0016PM02 08COTIS CBRIHLA        002800000273629072021                             25,00
?


en général, je vois:
- 6 caractères de code srv
- 5 caractères de date
- ~60 caractères de libellé, dont les 8 derniers caractères (hors espaces) forment la date valeur
- 10 caractères pour le montant débité
- 10 caractères pour le montant crédité

je pense que tu peux donc obtenir ce que tu souhaites en utilisant des formules, que tu pourras maitriser plus facilement que du code.
0