Import de données ou réarrangement post-import ?

Bonjour,

Je souhaite votre aide pour solutionner mon problème.

Je dispose de données que j'ai collectées dans un .txt

Elles sont formatées de la façon suivante :

ORD-du texte inutile

nom
adresse
codepostal ville

ORD-du texte inutile

nom
adresse
codepostal ville

ORD-du texte inutile

etc...

Ca, c'est la règle générale.

Je souhaiterais importer uniquement les champs lignes nom/adresse/codepostal ville dans une cellule à chaque fois.

Donc obtenir le rendu suivant :

cellule1 contenant
nom
adresse
codepostal ville

cellule2 contenant
nom
adresse
codepostal ville

cellule3 contenant
nom
adresse
codepostal ville

avec le ALT+ENTER qui va bien en fin de ligne.

Bien sûr il y a des cas particuliers vu que le .txt provient d'un export de pdf. Parfois il n'y a pas de saut de ligne :

codepostal ville
ORD-du texte inutile

Parfois l'adresse complète est sur 2 ligne ou même 1 ligne ... :

nom adresse
codepostal ville

ou

nom adresse codepostal ville

Je pense qu'obtenir quelque chose de correct dès l'import est compliqué, l'idée est de vous solliciter pour un traitement des cellules pour obtenir le résultat attendu.

Merci de votre aide.

26exemple.txt (692.00 Octets)

Bonjour et bienvenu,

Tu t'est donné beaucoup de peine pour décrire le fichier, alors que qu'il suffit de mettre à la disposition un petit bout du fichier .txt pour que nous puissions voir la disposition de données. Ça serait plus parlant.

C'est chose faite, j'ai reconstitué un exemple comprenant les différents cas de figure.

Si les exceptions sont vraiment trop complexes à traiter, je peux éventuellement les corriger.

Le plus important étant de pouvoir remettre les données comme je le souhaite.

Bonsoir,

Ci-joint une proposition à tester.

Avec distinction des lignes OK/KO.

L'idéal est bien de régulariser les fichiers en amont. Sans critère fiable de découpage, cela sera difficile de faire mieux.

Bonne soirée

Bouben

39importtxt.xlsm (27.11 Ko)

Merci, c'est déjà très bien.

C'est vraiment du super travail, je ne sais comment te remercier.

Afin de traiter les KO, j'ai 2 questions :

- tu effectues le découpage sur quelle chaîne ? ORD ? ORD- ?

car j'ai des cellules qui contiennent 2 blocs d'adresses car le ORD intermédiaire était mal retranscrit (en 0RD ou OR0 ou ORD" ...) ils sont peu nombreux donc je peux les traiter manuellement dans le .txt mais j'ai besoin de savoir sur quoi tu découpes (l'idéal étant "ORD-" afin d'éviter de découper des mots contenant ORD) pour pouvoir remplacer par la bonne chaîne ;

- plus embêtant, j'ai environ 40% de KO à cause des adresses mal formatées. On ne sait pas les reformater correctement ? Il faudrait pouvoir détecter le premier chiffre (qui serait donc celui du numéro de la rue, sauf quelques exceptions où le nom comprend déjà un ou des nombres - je corrigerai ces cas manuellement à la fin), insérer un ALT+ENTER avant ce chiffre s'il n'est pas déjà présent. Puis même chose pour le bloc de 5 chiffres (le code postal). Ça c'est la logique à appliquer, j'espère qu'elle n'est pas trop complexe à implémenter.

Bonsoir,

Le découpage est fait sur "ORD-".

Pour le reste, effectivement, cela dépend de la qualité des données.

On peut bien sûr faire mieux, j'aurai besoin pour cela d'un échantillon plus large pour voir les cas majoritaires à traiter.

Dans ce type de problématique, l'approche est la suivante :

  • mise en place de x règles principales pour gérer 80% des cas
  • identification des cas plus complexes récurrents, mise en place d'une règle supplémentaire, permettant de traiter 80% des cas restants
  • etc
Au fur et à mesure, le nombre de cas traités augmentent, il faut trouver la règle qui règle le maximum de problèmes restants.

Ainsi, on passe de 80% à 90 %, à 92%, etc (mais ça décroit de plus en plus doucement).

Si les données sont confidentielles, je te laisse anonymiser le fichier ; tu peux aussi me l'envoyer en privé.

Bonne soirée

Bouben

Bonsoir à tous,

Pour information, ci-joint la version finale anonymisée, pour le forum.

Et quelques explications (échanges - questions/réponses - faits en MP sur des données confidentielles).

Bonne soirée

Bouben

quelques explications complémentaires :

- la différence entre un KO et une exception (par exemple lignes 290 et 322 ? Elles présentent le même écart selon moi

=> il n'y a pas de différence !

=> j'ai initié pour l'exemple en "corrigeant" certaines lignes "KO", qui sont de ce fait passées en exceptions (modif faites selon le process prévu, en double-cliquant)

=> celles qui me semblaient évidentes (ex : adresses sur 4 lignes pour Montreuil, etc)

=> Une fois qu'une exception est créée, on la distinction d'affichage est juste pour information, l'adresse peut être considérée dans ce cas comme OK (puisque validée manuellement par l'utilisateur)

- l'utilité de la feuille Exceptions : la première colonne est remplie automatiquement ? les corrections sont prises en compte de quelle manière ?

=> les exceptions sont ajoutées en double-cliquant

=> lors de l'ajout les 2 colonnes "Adresse fichier" et "Adresse modifiée" sont identique (reprend l'adresse du fichier)

=> ensuite, il convient si besoin de modifier la seconde colonne

=> lors de l'import suivant, toutes les adresses qui ne sont pas dans le format attendues ("KO") sont vérifiées dans l'onglet "Exceptions"

=> si l'adresse existe, on remplace l'adresse trouvée dans le fichier (enfin décortiquée par le traitement) par l'adresse corrigée

- lorsque je clique sur le bouton d'import, il importe automatiquement les données sans me demander le fichier source ? le .txt est embarqué dans le Excel ? Je préfère qu'il y est une fenêtre de choix comme habituellement vu que je vais devoir corriger un peu le .txt

=> bug (pour simplifier mes tests j'avais temporairement mis le chemin "en dur", et c'est resté par inadvertence)

Enfin, le double-clic pour indiquer qu'un KO est en fait une exception et est correct fait planter mon Excel (2013). Un fumeux problème de mémoire insuffisante et/ou de 64 bits

=> c'est plus embêtant, ce genre de problème est assez difficile à diagnostiquer.

=> Dans un premier temps, maintenant que le principe des exceptions est maîtrisé, il suffit de compléter l'onglet "Exceptions" à la main, en copiant l'adresse de l'onglet "Adresses", vers l'onglet "Exceptions", en colonne A et B.

Et pour terminer, le remplacement des "Exceptions" ne fonctionne pas tout à fait dans certains cas, il va valoir que je creuse un peu

Ci-joint une nouvelle version (qui ne prend en compte que la modif sur la sélection du fichier)

A bientôt !

Je remercie grandement bouben qui a apporté une réponse splendide à ma demande. Très disponible et très efficace.

Il est écrit "Membre dévoué" sous le pseudo bouben : je ne peux que confirmer.

Bye

Orvis

Rechercher des sujets similaires à "import donnees rearrangement post"