Création tableau automatique et .csv

Bonjour,

Je fais appel à votre aide car j’ai besoin de créer un tableau automatique mais j’ai du mal avec les bases excel.

Voici mon problème :

  • Je travaille sur une banque de données sur lequel je peux exporter un fichier .csv, l’ordre des colonnes est toujours le même, par contre le nombre de lignes varie à chaque extraction.
    J’arrive à segmenter le .csv en utilisant la fonction text to columns et j’obtiens de nombreuses colonnes dont certaines ne me serviront pas. J’ai donc toutes mes colonnes pour le moment.

  • Je dois donc créer un tableau à 6 colonnes qui s’ajuste automatiquement au niveau du nombre de lignes.

  • Les 6 colonnes qui doivent être récupérées sont : SKU, Tag ID, from location, original_qty, update_qty et user_id.

  • La deuxième ligne est inutile, c’est un doublon de la première.

  • Je ne dois récupérer que les lignes dont la valeur “from location”=CONTAINER.

  • Je dois pouvoir ensuite sur le tableau final pouvoir trier par valeur de SKU.

Quelle est la méthode la plus simple adaptée à mon problème ? Je vous remercie.dmr.csv (138,3 Ko)

Bonjour,
test import csv.xlsm (20,8 Ko)
je te propose une solution avec macro. Ouvre le fichier joint puis clique sur le bouton “Traiter le fichier csv”
Choisis le fichier à traiter.

La macro ne récupère que les 6 colonnes nécessaires puis purge les lignes ne contenant pas CONTAINER en colonne C.

1 « J'aime »

Bonjour,

Je vous remercie pour votre aide et votre réactivité, c’est EXACTEMENT ce qu’il me fallait, ça me retire une sacrée épine du pied.

Si je peux abuser une dernière fois, que dois-je rajouter à la macro pour :

  • trier le tableau par valeur de SKU croissante.
  • l’entourer de toutes les bordures
  • calculer automatiquement le nombre de lignes allant de A2 à Ax
  • pouvoir rajouter un petit texte qui sera constant en bas

Merci encore !

Bonjour,

Voici une nouvelle version.
La macro crée un tableau automatique, trie sur la 1ere colonne, inscrit le nombre de lignes du tableau en H1
et ajoute un commentaire deux lignes sous le tableau.

Pour modifier le commentaire, il faut aller voir la fin de la macro (Alt+F11)
et remplacer le texte pas le texte définitiftest import csv.xlsm (25,7 Ko)

Rebonjour,

Il semblerait que la macro plante maintenant lors de l’importation du .csv.

J’ai une erreur d’éxécution ‘9’

l’indice n’appartient pas à la sélection.

Quand je vais sur le débogueur j’ai une ligne en jaune :

ActiveWorkbook.Worksheets(“test”).ListObjects(“Tableau1”).Sort.SortFields.Clear

Merci

effectivement. Il suffit de remplacer (“test”) par (1).
Voici le nouveau fichiertest import csv.xlsm (25,7 Ko)

Désolé,

J’ai cette fois ci une erreur 438
propriété ou méthode non gérée par cet objet sur cette ligne :

ActiveWorkbook.Worksheets(1).ListObjects("Tableau1").Sort.SortFields.Add2 _
    Key:=Range("Tableau1[[#Headers],[SKU]]"), SortOn:=xlSortOnValues, Order:= _
    xlAscending, DataOption:=xlSortNormal

Merci

Bonjour,

Je n’arrive pas à reproduire cette erreur. Peut-être cela vient-t-il de nos versions d’Excel.
cette séquence trie le fichier sur la colonne SKU. Tu peux invalider cette partie en insérant une apostrophe devant ActiveWorkbook

Ok ce n’est pas grave, je laisse tomber les “améliorations” apportées suite à votre première réponse.

Je vais rester sur la première version, assez simple, que vous m’avez donné en premier.

Malheureusement aujourd’hui mon extraction ne se fait plus du tout et j’obtiens un tableau vide avec les .csv que j’avais à traiter aujourd’hui.

Je ne sais pas exactement ce qui cloche.

Je vous mets en pièce jointe deux autres .csv que j’avais à traiter aujourd’hui pour voir la différence.

Je vous remercie encore du temps accordé et de votre patience.

SAMPLE_CSV.csv (26,1 Ko) 6215870.csv (24,9 Ko)

Bonjour,
Je n’ai plus accès à mon PC pour cause de vacances…
Bon courage

Merci à vous et bonnes vacances

Bonjour,

Je pense que le problème vient du fait que la structure des fichiers est différente, présence de deux “” dans le premier fichier.("“Code”" et “Code”)

image

image

Cordialement.

Bonjour Zebulon,

Merci de la réponse apportée malheureusement je n’arrive pas à comprendre : j’ai re-téléchargé les deux fichiers que j’ai envoyé (dmr.csv et 6215870.csv) pour comparer et aucun des deux fichiers n’a le double quote …

Je devrais avoir le double quote sur dmr.csv mais je ne l’ai pas, une idée ?

Re,

Testes Données, Données externes - Fichier texte
Etape 2 sur 3, est ce que les deux fichiers se présentent de la même façon ? ou est ce que tu as la même chose que ci-dessous.

drm.csv, il faut un séparateur Autre = " en plus de Virgule et Interpréter des séparateurs identiques doit être coché pour avoir le bon nombre de colonnes.


De plus une colonne vide est présente en première colonne.

6215870.csv, seul le délimitateur virgule est coché.

Cordialement.

Re,

Avec ce fichier par exemple 6215997.csv (48,5 Ko)

Je choisis cette méthode

Sinon effectivement avec la macro de ouisansdoute, j’obtiens une première colonne vide et les autres non remplies, ça doit juste être un décalage lié aux virgules ou aux “” mais je ne vois pas quoi modifier exactement

screen1
screen2

Manuellement je le fais ainsi

Re,

Si tu veux que la macro de ouisansdoute fonctionne, il faut que la structure de ton fichier soit identique à celle du 1er fichier (drm.csv) à partir duquel elle a été construite. Et cela, à chaque import.

J’ai cherché quoi modifier, mais mes connaissances en VBA étant restreintes je ne vois pas.
Désolé.
Cordialement.

1 « J'aime »

Merci tout de même de l’aide apportée

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.