Copier le contenu filtré d'un csv dans un nouveau document

Bonsoir,

Je sollicite à nouveau la communauté pour un coup de pouce (et j'espère bientôt je pourrai en donner aussi ).

J'ai un fichier de reporting au format .xlsm et je reçois des données de participants à un concours dans un fichier data.csv

Mon objectif est d'avoir un bouton "GO" dans mon fichier reporting.xlsx, qui va ouvrir puis "trier" mon fichier data.csv et générer un doc dataTriees.xlsx qui contiendra les données triées. Le fichier data.csv ne doit au final pas subir de modifications.

Quelle est la logique de tri ?

Dans le fichier de données il y a les infos des participants et trois colonnes "Lot 1", "Lot 2" et "Lot 3". Si le joueur a gagné le lot 1, il a la mention "##YES##" dans la cellule associée.

Le fichier dataTriees.xlsx doit contenir trois feuilles renommées "Lot 1", "Lot 2", "Lot 3" qui contiennent chacun les gagnants respectifs.

Dans mon fichier reporting.xlsx actuel, j'arrive avec le bouton "GO" :

==> A créer un fichier vierge dataTriees.xlsx avec trois onglets renommés "Lot 1", "Lot 2" et "Lot 3"

==> A récupérer la liste des lignes des gagnants d'un lot en particulier dans le fichier data.csv

Mon problème :

Je n'arrive pas à écrire le resultat du tri du fichier data.csv dans le bon onglet de mon fichier dataTriees.csv.

Je suis sûrement pas loin du but, mais avec déjà tous les efforts fournis je n'y arrive plus...

Merci de m'avoir lu et merci d'avance pour votre aide

19reporting.zip (28.85 Ko)

Bonjour Souss92

Si j'ai bien compris le problème voici une proposition de solution !

11data.xlsx (29.63 Ko)
9datatriees.xlsm (24.02 Ko)

Bonjour Andrea73,

Alors effectivement, tu as bien compris la logique. Les données sont bien triées et sont bien repertoriées dans les bons onglets.

Cependant, l'idée est d'avoir un unique fichier XLSM (avec macros) qui permet de "piloter" des fichiers CSV. Dans le .zip joint dans mon premier message, c'est le fichier Reporting.xslm qui doit être le seul contenant des macros VBA.

Dans ton exemple, le code est intéressant mais il y a plusieurs points qui ne sont pas pratiques en vue d'une automatisation :

  • Tu as crée à la main le fichier dataTriees
  • Tu as crée et renommé à la main les trois onglets
  • D'un fichier .csv, c'est devenu un fichier .xlsm (donc "moche" à diffuser, les destinataires voyant un bouton dans le fichier reçu qui ne leur sert à rien).

Pour récapituler mon besoin :

  • Le fichier Reporting.xslm est le seul fichier contenant des macros (OK dans ce que j'ai envoyé)
  • Le fichier dataTriees.csv est créé de zéro avec trois onglets "Lot 1", "Lot 2", "Lot 3" (OK dans ce que j'ai envoyé)
  • On ouvre le fichier data.csv et on fait le tri (normalement le bout de code est fonctionnel dans ce que j'ai envoyé, à bien tester)
  • On copie les données triées du fichier data.csv vers le fichier dataTriees.csv (need help !!)

Ma demande est-elle plus claire ?

Merci beaucoup pour les efforts déjà fournis

Souss

Bonjour

Une autre manière de faire

A vérifier

Bonsoir Banzai,

J'ai pris le temps de regarder ton code VBA... bravo et merci !

Il fait exactement ce que je recherchais, et ta manière de faire est à la fois plus simple et plus lisible

J'ai essayé d'aller plus loin, et je pense y être finalement parvenu !

Je voulais rajouter un onglet "Paris" dans dataTriees.csv dans lequel on aurait la liste des participants (quel que soit leurs gains) qui viennent de Paris.

Ici, il ne s'agit pas d'un filtre classique (car les cellules peuvent contenir plusieurs mot, ex : "France Paris 15ème" mais de chercher dans chaque cellule de la colonne E celles qui contiennent "Paris" et insérer les lignes ayant ce critère dans l'onglet "Paris" de dataTriees.csv

Je vous mets le doc en PJ.

Si vous avez des remarques ou des suggestions, n'hésitez pas ! En attendant, je mets ce sujet en résolu

Bonjour

Toujours en filtrant

A tester

Super !

Merci encore Banzai !!

Hello,

En approfondissant j'aimerai rajouter deux petites subtilité. Je trouve que ca ne vaut pas la peine de recréer un sujet pour ca donc je le poste ici (en partant du fichier Reporting V003 de Banzai ) :

1) Comment fait-on pour avoir par exemple dans l'onglet "Lot 1" tous les gagnants du lot 1 et du lot 2 ? (comment rajouter des lignes à la suite d'autres lignes dans une feuille)

2) En supposant que la première ligne du fichier data.csv soit une entête, comment peut-on la rajouter à la première ligne de chaque onglet du fichier dataTriees créé ?

Merci d'avance

Bonjour

A tester

Rechercher des sujets similaires à "copier contenu filtre csv nouveau document"