Concaténation puis filtre avec résultat dans nouvel onglet

Bonjour,

N'ayant pas trouvé tout ce que je recherche, je vais faire un descriptif de mon besoin, de ce que j'ai déjà, et de ce que je recherche.

Pour info, je ne suis pas un pro VBA, je tâtonne !

Je récupère chaque jour par ftp un nouveau fichier CSV.

Chaque fichier CSV porte un nom différent avec la date du jour.

Là c'est bon, j'ai mon logiciel de ftp qui fait ça.

À la fin du mois, je sors un fichier concaténé, trié et avec plusieurs onglets.

Voici un fichier de base.

Pour cela je mets tous les fichiers CSV du mois dans un même répertoire.

J'ai créé un fichier .bat avec à l'intérieur la commande suivante : copy *.csv fichiermois.csv

La magie opère, j'obtiens un fichier global.

J'ai créé un fichier avec des en-têtes pour accueillir les données, avec une macro pour du tri, ma tambouille de formules quoi.

Et là, le blocage !!

  • -> Tout d'abord, je voudrais que mes formules s'appliquent en fonction du nombre de lignes.

Je trouve comment les compter, mais je n'arrive pas à automatiser la copie de mes formules sur un nombre de lignes différent à chaque fois.

https://forum.excel-pratique.com/excel/macro-qui-etend-une-formule-pour-un-nombre-de-ligne-variable-t12186.html

J'ai vu ce lien, mais sans succès de compréhension

  • -> Ensuite, je fais donc un tri par colonne B ou C (numéro ou nom de client)

Je voudrais ensuite, par une solution quelconque, automatiser la création d'un nouvel onglet par client, donc comme un résultat de filtre par client avec toutes ses infos.

Il faudrait évidemment que l'onglet se nomme comme le numéro client ou comme le nom client, peu importe...

Je ne parviens pas à l'automatiser, la macro ne fonctionne pas, il faudrait que chaque mois, quand je prends mon fichier trame, j'automatise ma création d'onglets par clients, avec pour détail important que ce nombre de clients peut varier d'un mois à l'autre (pas de beaucoup)

Si vous avez des questions ou des infos à me demander, n'hésitez pas, merci de votre aide !!

zalexxxx a écrit :

Bonjour,

Bonjour,
zalexxxx a écrit :

Pour cela je mets tous les fichiers CSV du mois dans un même répertoire.

J'ai créé un fichier .bat avec à l'intérieur la commande suivante : copy *.csv fichiermois.csv

La magie opère, j'obtiens un fichier global.

wahou, cela m'intéresse ...
zalexxxx a écrit :

Tout d'abord, je voudrais que mes formules s'appliquent en fonction du nombre de lignes.

Je trouve comment les compter, mais je n'arrive pas à automatiser la copie de mes formules sur un nombre de lignes différent à chaque fois.

https://forum.excel-pratique.com/excel/macro-qui-etend-une-formule-pour-un-nombre-de-ligne-variable-t12186.html

J'ai vu ce lien, mais sans succès de compréhension

j'ai lu ce chapitre, je n'ai pas vraiment compris non, plus; dans ton cas il y a plusieurs façons : créer des noms de plage dynamiques, ou faire jouer la fonction DECALER qui définiera la taille de la matrice ... il faudrait voir pour cela la fonction
zalexxxx a écrit :

Ensuite, je fais donc un tri par colonne B ou C (numéro ou nom de client)

Je voudrais ensuite, par une solution quelconque, automatiser la création d'un nouvel onglet par client, donc comme un résultat de filtre par client avec toutes ses infos.

Je ne parviens pas à l'automatiser, la macro ne fonctionne pas, il faudrait que chaque mois, quand je prends mon fichier trame, j'automatise ma création d'onglets par clients, avec pour détail important que ce nombre de clients peut varier d'un mois à l'autre (pas de beaucoup)

j'ai une solution d'éclatement par fichiers, je peux l'adapter peut-être par onglet; mais ma question pourquoi ? justement le filtre te permet de ne sélectionner qu'une partie ! ou bien est-ce parce que les formules doivent s'appliquer indépendamment des clients les uns les autres, dans ce cas il y a aussi des soltuions plus simples de TCD
Steelson a écrit :

Bonjour

Salut

Steelson a écrit :

wahou, cela m'intéresse ...

Tu as essayé ?

Cette solution a égayé le jour où je l'ai trouvée

Steelson a écrit :

j'ai lu ce chapitre, je n'ai pas vraiment compris non, plus; dans ton cas il y a plusieurs façons : créer des noms de plage dynamiques, ou faire jouer la fonction DECALER qui définiera la taille de la matrice ... il faudrait voir pour cela la fonction

Il n'existe pas une information simple à indiquer dans la macro pour qu'elle soit capable d'étendre la formule jusqu'à la dernière cellule de la feuille ?

Steelson a écrit :

j'ai une solution d'éclatement par fichiers, je peux l'adapter peut-être par onglet; mais ma question pourquoi ? justement le filtre te permet de ne sélectionner qu'une partie ! ou bien est-ce parce que les formules doivent s'appliquer indépendamment des clients les uns les autres, dans ce cas il y a aussi des soltuions plus simples de TCD

Je suis preneur de toute solution en fait.

Alors pourquoi par onglets ?

Pour simplifier l'archivage et retrouver simplement le client, mais aussi pour n'avoir à travailler que sur un seul fichier.

J'ai oublié de préciser qu'il faudrait de préférence que l'onglet se nomme comme le numéro client ou comme le nom client, peu importe...

C'est quoi TCD ?

Beaucoup de questions, allons-y pas par pas ...

Il n'existe pas une information simple à indiquer dans la macro pour qu'elle soit capable d'étendre la formule jusqu'à la dernière cellule de la feuille ?

pour recopier jusqu'à un certain point variable :

14recopie.xlsm (14.79 Ko)

Je suis preneur de toute solution en fait.

Voici une solution d'éclatement par fichier ...

J'ai de la difficulté à comprendre l'intérêt d'un éclatement par onglet; car pour moi éclater les données en plusieurs paquets soit résoud les problèmes de confidentialité, soit permet de travailler en parallèle sur une partition

C'est quoi TCD ?

C'est un outil extrêmement utile, voir exemple bien que je ne connaisse pas quel est le contenu de tes colonnes !

16cdr-20151201.xlsx (58.57 Ko)
Steelson a écrit :

pour recopier jusqu'à un certain point variable :

Ah ben là j'ai pu adapter la macro pour qu'elle fasse la formule que je veux (une addition ou une multiplication)

Je n'aurai donc plus qu'à intégrer ce bout de macro, merci bien !

Steelson a écrit :

Voici une solution d'éclatement par fichier ...

Malheureusement lorsque j'arrive à la fenêtre pour le choix du répertoire, il y a une erreur :

Erreur d'exécution '13':
Incompatibilité de type

Ensuite quand je vais dans le débogage, il me surligne :

LigneDebut = Application.Match(recherche, Columns(colonne), 0)

J'ai essayé d'ndiquer la colonne B, C ou D, sans succès

Steelson a écrit :

J'ai de la difficulté à comprendre l'intérêt d'un éclatement par onglet; car pour moi éclater les données en plusieurs paquets soit résoud les problèmes de confidentialité, soit permet de travailler en parallèle sur une partition

En fait le but est d'avoir un tableau par mois, avec autant onglets que de clients.

Dans mes onglets, les macros sont prêtes pour faire des calculs et des graphs, que je pourrai ensuite retrouver facilement.

Cela me permet d'avoir l'affichage de tout le détail pour chaque client, comme un filtre en fait, ce que je disais au début !

Peut-être que je vois cette solution car elle me paraît, selon moi, logique, mais que je me trompe, je ne sais pas du tout !!

Steelson a écrit :

C'est un outil extrêmement utile, voir exemple bien que je ne connaisse pas quel est le contenu de tes colonnes !

AAAaahhhhh TCD = Tableau Croisé Dynamique !!!!

Je ne maîtrise absolument pas, je ne sais pas du tout comment faire ça.

Est-ce que ce serait THE solution ?

Parce que si c'est le cas, alors j'apprendrai pour régler mon problème

En fait dans ce que je vois, il n'y a que la ligne par client, alors que j'ai besoin malgré tout du listing correspondant au client, de tous les résultats le concernant !

Est-ce que tu voudrais plus d'éléments peut-être ?

Je te joins le fichier complet, dis moi quels sont les éléments dont tu as besoin

7fichiermois.zip (14.42 Ko)

En tout cas un grand merci pour le boulot fourni et ton aide précieuse

zalexxxx a écrit :
Erreur d'exécution '13':
Incompatibilité de type

Ensuite quand je vais dans le débogage, il me surligne :

LigneDebut = Application.Match(recherche, Columns(colonne), 0)

ach ! ... je pense que c'est lié au fait que la valeur est numérique peut-être, je vais voir cela demain

zalexxxx a écrit :

En fait dans ce que je vois, il n'y a que la ligne par client, alors que j'ai besoin malgré tout du listing correspondant au client, de tous les résultats le concernant !

... en double-cliquant sur la valeur ...

Steelson a écrit :

ach ! ... je pense que c'est lié au fait que la valeur est numérique peut-être, je vais voir cela demain

En effet, j'avais figé à string le critère de fragmentation.

Essaie avec ceci !

La même chose, fragmenter par onglet :

Bonjour,

J'ai juste eu le temps de regarder le magnifique résultat, c'est topissime !!

Je vais me pencher sur le comment, pour comprendre, et pour surtout pouvoir faire d'éventuelles modifications.

je te remercie beaucoup beaucoup beaucoup !!

je ne mets pas encore résolu, si jamais j'ai une quelconque incompréhension, je laisse encore un peu

Rechercher des sujets similaires à "concatenation puis filtre resultat nouvel onglet"