Copier les données d'un fichier source vers d'autres fichiers

Bonjour,

Je refais un post de manière à ce qu'il soit plus clair en espérant obtenir une réponse

Tous les mois, je dois établir un reporting de chiffre d'affaires (CA) par client.

Pour cela je dispose :

  • Sur un serveur, tous les mois(le nom du fichier commence toujours par "Reporting_Grand_compte M+1) est créé un fichier CA assez volumineux pour l'ensemble des clients.
  • J'ai un fichier CA par client qui s'identifie par un code site ou code national

Je souhaiterais pouvoir intégrer les nouvelles données de chaque mois de manière automatique sur mes fichiers clients.

Pour rappel, le nom le fichier source n'est jamais le même, car il y a un fichier source par mois pour l'ensemble des clients.

La question que je me pose est, j'imagine que c'est possible de copier toutes les données du fichier serveur sur chaque fichier client mais :

1) ça alourdirait grandement chaque fichier client

2) Un problème de confidentialité car chaque client disposerait de toutes nos données de CA pour l'ensemble de nos clients

Du coup, puis-je faire pour copier uniquement les données du client ?

Actuellement, je vais sur le fichier serveur du mois, je filtre sur le code site ou le code national (critère me permettant d'identifier le client) puis je le colle sur chaque fichier client. Ma formule somme.si.ens actualise ensuite les données...

Je vous joints un fichier type, la feuille nommé "CM4" est le fichier serveur

Avez-vous une idée, comment pourrai-je automatiser ça?

Si vous avez besoin de plus de renseignements, n'hésitez pas

Vous remerciant par avance

15test-macro.xlsx (29.58 Ko)

Bonjour,

Je n'ai pas trouvé la feuille CM4 ! je n'ai pas trouvé non plus le critère "client".

Si tu veux dispatcher les données selon un critère (quelle colonne), tu peux faire un modèle de fichier (juste l'en-tête et un peu de mise en forme) et utiliser cette application.

https://www.excel-pratique.com/fr/telechargements/utilitaires/dispatcher-compiler-excel-no466

Oups...mea culpa, l'onglet BASE= CM4 et le critère client est défini par le "CODE SITE" qui se trouve sur la colonne B dans l'onglet BASE et et sur l'autre onglet, sur la cellule B14.

J'essaierai ton lien quand celui-ci voudra bien fonctionner sur mon pc de travail ahah car il m'affiche "le lien ne fonctionne pas ou a été déplaçé" probablement lié à un système de sécurité... (j'attends de rentrer pour tester sur un pc autre)

Merci, je te tiens au courant

Voici

  • le modèle, à mettre dans le même répertoire que ton fichier à dispatcher
    18model.xlsx (24.24 Ko)

    j'ai inversé les 2 feuilles et mis un lien entre elles pour rappeler le n° client à partir de A2
  • ton fichier avec macro : il faudra juste choisir le dossier de sauvegarde
    15test-macro.xlsm (37.21 Ko)

    j'ai changé quelques valeurs pour avoir plus de variété (mais j'ai laissé les en-têtes redondantes ce qui produit un fichier inutile !)

Merci beaucoup pour le temps que tu accordes à ma demande, vraiment !

Je suis désolé de te dire que je ne comprends vraiment pas ce que je dois faire. En plus, si le client possède plusieurs codes sites, comment puis je dispatcher ça...

Je ne comprends pas comment utiliser l'application cité plus haut, j'ai ouvert le fichier, j'ai changé les entêtes en l'adaptant à mon fichier mais je ne vois pas comment ce fichier se met en lien avec mon fichier client...bref vraiment je suis perdu et ce n'est vraiment pas évident par écrit et à plus forte raison car je débute vraiment sur les macro donc impossible pour moi de comprendre le sens des codes!

Aujourd'hui, si je résume, il y a trois fichiers :

1) Le fichier application qui a priori permet de dispatcher les données (puis je créer autant de colonnes que j'ai besoin ?Comment tu le vois, j'ai besoin d'aller jusqu'à la colonne BB (CA BRUT) , la macro s'adapte bien?

2) Un modèle de fichier? comment s'alimente t'il?

3) Le fichier test macro, lorsque je l’exécute, il n'arrive pas à trouver mon fichier "model" alors qu'il se trouve dans le répertoire que j'indique

A mon avis, je me goure totalement, si tu peux davantage m'éclairer...

As-tu essayé en l'état de faire ceci (sans modification des en-têtes) :

  • - mettre les 2 fichiers dans un même répertoire, le Model doit être à côté de test macro.xlsm, pas dans le répertoire où seront générés les fichiers client
  • - ouvrir test macro.xlsm
  • - dans onglet BASE
    - faire Alt(maintenir appuyé) + F8
  • - cliquer sur dispatcher
  • - choisir un dossier où seront stockés les fichiers générés

Par contre, si tes en-têtes ne sont plus les mêmes, il faudra faire évoluer le modèle.

Comment savoir qu'un client a plusieurs codes site ? je m'étais basé là-dessus

par client qui s'identifie par un code site ou code national

Ok c'est beaucoup plus clair.

En suivant tes instructions :

1) effectivement il créé bien un fichier en suivant le modèle que nous avons vu ensemble (t'inquiète pas, le modèle est parfait rien à changer). --> TU GÈRES

Maintenant que j'ai compris, je me rends compte qu'en fait, ce type d'automatisation est intéressant lorsque tu as une dizaine de sites, alors que moi, j'en ai au minimum 100, ce qui va créer beaucoup trop de fichiers puis il y a l'étape où certains clients possèdent plusieurs codes sites et d'autres, on se base uniquement sur le code national..en bref beaucoup trop compliqué à mettre en place.

Me vient une idée, est-il possible avec ma formule somme.si.ens de la combiner avec une RECHERCHEV qui irait jusqu'au fichier serveur puis mois par mois, je n'aurais qu'à actualiser le lien?

Dommage qu'il n'existe pas une fonction vocale ou partage d'écran ahah, ça aurait été plus clair même pour toi, je te mets en difficulté en te disant cela après, mais vraiment encore merci pour le temps que tu consacres à répondre!!!

Bonjour, ne sois pas inquiète, je comprends bien qu'en développant on trouve que ce n'est pas toujours tout à fait la meilleure voie.

J'avais relu tes posts où tu parlais bien de fichier par client

Puis dans un fichier différent qui sera propre au client, je copie la feuille en provenance du fichier serveur sur un onglet du fichier client puis grâce à la formule somme.si.ens, ou parfois un TCD les données se mettent à jour automatiquement en fonction du mois concerné.

La question que je me pose est, j'imagine que c'est possible de copier toutes les données du fichier serveur sur chaque fichier client mais :

1) ça alourdirait grandement chaque fichier client

2) Un problème de confidentialité car chaque client disposerait de toutes nos données de CA pour l'ensemble de nos clients

Du coup, puis-je faire pour copier uniquement les données du client ?

Pour mieux comprendre le sujet :

  • est-ce que les fichiers vont chez le client avec leurs données détaillées (on peut facilement aménager la macro pour regrouper plusieurs codes) ? ou bien seulement la synthèse ? ... de toute façon dans ce cas le nombre de fichiers sera le même
  • as-tu une table de correspondance entre le client et le code site/code national

Maintenant que j'ai compris, je me rends compte qu'en fait, ce type d'automatisation est intéressant lorsque tu as une dizaine de sites, alors que moi, j'en ai au minimum 100, ce qui va créer beaucoup trop de fichiers puis il y a l'étape où certains clients possèdent plusieurs codes sites et d'autres, on se base uniquement sur le code national..en bref beaucoup trop compliqué à mettre en place.

Pour cette possibilité, il faudrait de toute façon ouvrir le fichier serveur pour effectuer les calculs. Et non j pense que maintenir le lien actif engendrerait de erreur si le fichier n'est pas ouvert. Mais on peut ouvrir le fichier serveur, effectuer les calculs, sauvegarder les résultats et fermer le fichier (il n'y aurait plus de lien mais les valeurs seraient lisibles).

Me vient une idée, est-il possible avec ma formule somme.si.ens de la combiner avec une RECHERCHEV qui irait jusqu'au fichier serveur puis mois par mois, je n'aurais qu'à actualiser le lien?

Remarque : si les données détaillées + la synthèse vont chez le client, il est possible d'automatiser aussi l'envoi par mail chez les clients. C'est ce que je faisais auprès des managers de production pour des états de présence du personnel.

Bonjour,

Merci beaucoup, tu me rassures, oui ce n'est pas évident et on a tendance à vite relâcher ahah

Ecoute, d'ici demain, je vais te dire en détail ce dont je possède pour t'aiguiller un maximum, car l'erreur que j'ai faite et j'en suis désolé, c'est que je t'apporte des précisions au fur et à mesure, donc te code petit à petit devient caduque à cause de moi et tu fais *2 le travail...

Je reviens vers toi demain

Merci!!

Bonjour

J'espère que tu vas bien,

Alors, poursuivons :

Pour mieux comprendre le sujet :

- est-ce que les fichiers vont chez le client avec leurs données détaillées (on peut facilement aménager la macro pour regrouper plusieurs codes) ? ou bien seulement la synthèse ? ... de toute façon dans ce cas le nombre de fichiers sera le même

---> Le fichier qui est communiqué au client est le fichier de synthèse (où figure la formule somme.si.ens) ainsi que l'onglet où se trouve la base qui a permis de trouver ces données (je ne pense pas qu'il regarde cet onglet, mais à mon sens il est important de le laisser afin de garder un historique)

- as-tu une table de correspondance entre le client et le code site/code national?

Oui, je peux te fournir afin de limiter le périmètre :

  • Les clients pour lesquels, il faut cibler en fonction du code site
  • Les clients pour lesquels, on peut les identifier en fonction du code national

Tu trouveras ci-joints la table(j'ai remplacé les noms des clients par d'autres noms en te faisant deux ongles)

ça permettra de limiter le nombre de fichier créé, car le fichier serveur possède d'autres clients mais qui ne fait pas l'objet de reporting, penses tu qu'avec la macro, on pourra ainsi délimiter le nombre de fichier créé en fonction de la table? ça serait super

J'aurais un travail auprès des différents clients afin de leur demander d'uniformiser les reportings en respectant le modèle que je t'ai envoyé, car chaque client à quelque sorte son propre reporting (la forme etc est différente).

La seule contrainte que je vois après, c'est si il y a des créations de sites supplémentaires par client, à la limite, il suffira de revoir la macro?

Merci beaucoup

15table-client.xlsx (10.80 Ko)

---> Le fichier qui est communiqué au client est le fichier de synthèse (où figure la formule somme.si.ens) ainsi que l'onglet où se trouve la base qui a permis de trouver ces données (je ne pense pas qu'il regarde cet onglet, mais à mon sens il est important de le laisser afin de garder un historique)

Détrompe-toi, il y a des clients vicieux et fouineurs comme moi qui ne laissent aucun occasion de rechercher plus que ce qu'on leur donne. Quand on me donne juste un TCD par exemple, je m'empresse de double cliquer sue le total et faire apparaîtr l'intégralité des informations !

Ce que je retiens donc c'est qu'il faut leur donner un fichier avec le détail mais seulement le leur.

Tu trouveras ci-joints la table(j'ai remplacé les noms des clients par d'autres noms en te faisant deux ongles)

ça permettra de limiter le nombre de fichier créé, car le fichier serveur possède d'autres clients mais qui ne fait pas l'objet de reporting, penses tu qu'avec la macro, on pourra ainsi délimiter le nombre de fichier créé en fonction de la table? ça serait super

je regarde cela demain.

La seule contrainte que je vois après, c'est si il y a des créations de sites supplémentaires par client, à la limite, il suffira de revoir la macro?

Normalement NON, il y aura juste la table à mettre à jour.

Questions :

  • quand prend-on le code site, quand prend-on le code NAT (je suppose qu'il s'agit du code national) ?
  • que fait-on quand un code est affecté à 2 clients différents ?

Bonjour

Questions :

quand prend-on le code site, quand prend-on le code NAT (je suppose qu'il s'agit du code national) ?

Alors c'est soit l'un ou l'autre, je t'ai créé deux onglets différents. En effet, lorsque le client s'identifie par un code NAT ( national), c'est parce qu'il possède + de 100 codes sites.

J'ai mis à jour la table grâce à ta remarque, j'ai constaté une anomalie.

que fait-on quand un code est affecté à 2 clients différents ? En principe, on ne peut pas avoir le même code SITE pour un même client.

En revanche, un code national c'est possible mais je viens de mettre à jour ma table pour que ce cas ne se présente pas, car dans tous les cas, même si il y a un code national identique pour un même client, il y a aura forcément un "groupe sous contrat" de différent(en bref le contrat n'est pas le même).

Je vais faire une essai comme ceci :

- je regarde d'abord le code national colonne G, s'il existe dans la table je le prends comme critère - si le code national est présent plusieurs fois, alors je prends en plus le groupe contrat colonne E suivant la table - sinon je prends le code site colonne B, s'il existe dans la table, je le prends comme critère - si ni le code national colonne G, ni le code site colonne B n'existent dans les tables, alors j'ignore la ligne

Ce sera un essai ... je suis sûr que ce n'est pas cela, mais cela permettra d'avancer.

Ton jeu de données n'est pas non plus suffisant pour tester tous les cas de figure. On verra cela sur la proposition que je vais te faire.

ça me semble parfait, parce que les seuls cas de figure que j'ai vus depuis mon arrivée, c'est seulement :

1 code site pour un client qui peut être complété d'un groupe contrat

1 code site ou plusieurs sites pour un client qui peut être amenée à évoluer en + comme en moins (exemple fermeture d'un site)

Détrompe-toi, il y a des clients vicieux et fouineurs comme moi qui ne laissent aucun occasion de rechercher plus que ce qu'on leur donne. Quand on me donne juste un TCD par exemple, je m'empresse de double cliquer sue le total et faire apparaîtr l'intégralité des informations !

J'en suis même à cliquer sur rogner les images, pour voir ce qu'on aurait voulu me cacher comme info sur une capture d'écran

l'outil capture n'existant que depuis 14 ans, très peu de gens l'utilisent et font encore des imprim écran. Puis, ne savent pas qu'une image rognée n'est rognée qu'à l'affichage, mais est toujours enregistrée dans son intégralité.

Bref, Nextia, Steelson a entièrement raison

coucou Joyeuxnoel

Olala tu m'apprends un truc là Puis, ne savent pas qu'une image rognée n'est rognée qu'à l'affichage, mais est toujours enregistrée dans son intégralité.

Si j'imprime ecran, que je colle sur paint et que je rogne qqls infos, la personne a toujours la possibilité de voir les infos rognées??

Je testerai donc la prochaine fois

Ahah des retours que j'ai, je vois que j'ai été imprécis.

Je parlais d'un imprim' écran qu'on collerait dans Excel, PowerPoint ou Word, et qu'on rognerait dans ce logiciel.

Non, si on passe par paint, ou qu'on enregistre en tant qu'image, c'est tout bon, pas d'inquiétude.

Ah d'accord, car j'ai toujours eu pour habitude de le faire sur PAINT et jamais sur d'autres formats, ouf ^^"

Pour revenir au sujet, la recherche du client est une belle usine à gaz ! Le problème est que les codes sont parfois interprétés en tant que texte (0094) ou nombre (94) et cela peut entraîner des risques d'oubli de certaines lignes !

Il faudra revoir la synthèse compte tenu que pour certains il peut y avoir plusieurs sites.

10model.xlsx (24.24 Ko)
8dispatching.xlsm (47.60 Ko)
Rechercher des sujets similaires à "copier donnees fichier source fichiers"