Création programmée de nouveau classeur Excel

Bonjour à tous,

J'ai un nouveau défi à relever...

Mise en contexte.

Nous avons plusieurs magasins qui saisissent leur production quotidiennement dans un classeur excel qui leur est dédié à eux seul.

Les superviseurs de magasins (qui ont environ 5 magasins chacun pour faire simple) consultent cette production quand ils le veulent.

Importer des données de multiples sources vers un seul fichier classé en onglet (1 par magasin), c'est facile (simple formule "=chemin d'accès blablabla...")

La grosse difficulté réside dans le fait que lorsque la semaine est terminée (le classeur est conçu pour soutenir 1 semaine), les gérants de magasins en créer un autre (à partir d'un Template) et le nomme avec les nouvelles dates de la semaine qui s'en vient, et c'est reparti.

Comment faire pour, à un jour précis de la semaine (genre dimanche matin minuit) un nouveau classeur avec les mêmes spécificités se créer automatiquement dans le même dossier d'arborescence dans les magasins et que par la suite, un nouveau classeur de récupération de données se créer lui aussi en tenant compte du nouveau classeur créé dans les magasins.

Illustration :

  • de la semaine du 1er juin au 6 juin (dimanche au samedi soir) : création du fichier St-martin_2020-06-01.xls dans un dossier spécifique du magasin St Martin + création du fichier Victoria_2020-06-01.xls dans un dossier spécifique du magasin Victoria.

récupération des données de St Martin et de Victoria dans le fichier Superviseur_2020-06-01.xls dans un dossier spécifique.

  • Le dimanche 7 juin à minuit : création du fichier St-martin_2020-06-07.xls dans un dossier spécifique du magasin St Martin + création du fichier Victoria_2020-06-07.xls dans un dossier spécifique du magasin Victoria.

création du fichier Superviseur_2020-06-07.xls dans un dossier spécifique qui sera capable de récupérer les données des nouveaux classeurs créés dans St Martin et Victoria

Vous me suivez?

Merci d'avance pour vos suggestions et bonne journée

Laurent

Bonjour,

Déjà moi j'abandonnerai cette notion de dates qui me semble ringarde et je me contenterai de la notion de semaine en cours.

Après si quelqu'un a envi de consulter une archives il peut très bien regarder un calendrier pour vérifier quel classeur ouvrir...

Au lieu de Victoria_2020-06-01, moi je me contenterai de VICTORIA2001,VICTORIA2002 ou les 2 dernier chiffres sont les N° de semaines et avec une numérotation comme ça tu peux gérer indéfiniment sans te casser le tête...

Pour le reste tout de devient facile :

Quand un responsable ouvre son classeur, il n'a même pas besoin de savoir quel jour on est... Le classeur sait très bien si le classeur en cours correspond à la date actuelle. (Une simple fonction personnaliser suffit) Si les feuilles ne correspondent pas, il archive et crée les nouvelles feuilles...

Après une fois qu'on a dit ça YAPUKA se palucher le code mais déjà tu n'as pas à te faire suer à manipuler des dates et des bribes de string à faire peur...

A+

Boonjour,

Effectivement, penser en semaine et non en date c'est plus simple...

Donc préparer un mega fichier avec les onglets semaine après semaine.. (ça va être long hahaha)... et ce pour chacun des 16 magasins...

Reste le problème de l'exportation des bons onglets de semaine vers le bon onglet de semaine du classeur général, car je me retrouve avec une importation d'un onglet de semaine et surtout que cette semaine soit associée au bon magasin.

J'ai un "conflit d'onglet" si je peux le qualifier ainsi car je dois importer 2 choses en même temps dont l"une est variable de semaine en semaine.

La cellule A1 de l'onglet semaine1 du magasin Victoria sera différente de la cellule A1 de l'onglet de semaine2 de ce même magasin. Et ce sera la même problématique pour chaque magasin.

A priori je ne vois pas les choses de manière aussi compliquées. Après je dis ça... il faut voir sur le tas, mebon !

Surtout pas préparer des onglets à l'avance. Si je ne trouve pas l'onglet de la semaine alors j'archive celui en cours qui doit être de la semaine dernière et je crée la nouvelle semaine Ton classeur doit être capable de gérer son propre archivage et sa propre création.

A mon avis il y a juste un classeur à prévoir que tu distribueras à tout le monde pour qu'il l'enregistre avec comme paramètre le nom du magasin, et après tout va s'incrémenter tout seul.

Après le problème d'importation ça je ne peut pas te dire j'ai pas assez de visibilité depuis chez moi , le ciel est un peu bouché !

Mébon : une importation ça se paramètre...

A+

J'aime bien l'idée d'avoir le même classeur avec les même paramètres et les employés doivent y écrire le nom du magasin, ce qui va se reporter automatiquement dans le fichier de récolte des données.

Un genre de formulaire quoi

Le point que je ne comprends c'est ce que tu entends par

Si je ne trouve pas l'onglet de la semaine alors j'archive celui en cours qui doit être de la semaine dernière et je crée la nouvelle semaine

.

On est d’accord que ça ne doit pas être manuel cette opération... J'ai des gérants qui ne sont pas très...doués... avec le côté informatique (d'où une solution automatisée), donc si le classeur ne le fait pas pour eux...

Le paramètre des dates vient donc de réapparaître Ce que l'on veut éviter si je comprends bien sinon ça complique les choses.

L'aspect important est une autre problématique mais est effectivement lié à ce que les gérants vont rentrer comme info et où (quel onglet de date/semaine).

Je me répète :

Quand un responsable ouvre son classeur, il n'a même pas besoin de savoir quel jour on est... Le classeur sait très bien si le classeur en cours correspond à la date actuelle. (Une simple fonction personnalisée suffit) Si les feuilles ne correspondent pas, il archive et crée les nouvelles feuilles...

Quand je dis "je" ou "il", c'est le classeur, le programme...

Dès l'ouverture en quelque millième de secondes le Workbook_open sait déjà si il continue de travailler sur les feuilles actuelles ou s'il doit archiver et en créer d''autres...

A+

Effectivement ça fait du sens dit comme ça

Désolé si je ne l'avais pas compris comme ça

Je vais préparer le ficher de base et on se reparle pour les détails plus techniques car je suis toujours limité dans mes connaissances même si j'apprends tous les jours.

Merci pour les pistes.

PS : le post est pas fermé hein... je reviendrai...

Une ébauche simplifiée, pour démarrer ?

10laurenzic.xlsm (18.87 Ko)

A+

Bonjour,

Voici le document que mis en forme.

C'est le document de base, utilisé par tous les magasins et consulté par les superviseurs.

Il est protégé (mot de passe : ren123)

La difficulté réside dans le fait que le superviseur doivent recevoir les données selon 2 critères :

  • les données associées à un magasin en particulier (à voir si on créer les onglets du classeur de récolte des données au fur et à mesure que les magasins "créer" le leur, ou si on fait un classeur par magasin)
  • la bonne semaine associée aux bonnes dates

En début de document j'ai créé un menu déroulant (magasin) donc l'importation vers le classeur de récolte de données peut se faire à partir de la valeur choisie. Ça donne une piste faire en sorte que le superviseur consulte les bonnes donnée du magasin.

Précision importante et non des moindres... nous travaillons tous sur des sessions distantes, donc les adresses de liaison entre les classeurs (pour exporter et importer) seraient de type : P:\Magasins\Magasin Saint-Jacques\Production journaliere et analyse de la semaine (P=serveur)

galopin01, au sujet de ton exemple, je t'avoue que je n'ai pas compris grand chose malheureusement, ça devient un peu trop compliqué pour moi. La macro a l'air complexe, même si je sais que c'est de la logique pure finalement.

J'arrive pas à comprendre le concept d'archivage, car il faut quand même que les données soient consultable même si nous sommes dans une semaine ultérieure.

Je sais je suis bien loin

Mais peut être que mon projet est trop complexe à mettre en place aussi, je garde ça à l'esprit, on ne peut malheureusement pas tout faire avec excel.

Bonne journée

Je t'avoue que ce fichier me laisse plutôt interrogateur..

Je suppose que ce que tu as joins c'est le document que tu voudrais pouvoir établir ?

A moins que ce ne soit la source elle-même ?

Il me faut avoir une idée très claire des documents sources.

Après (ou avant !) le problème des liaisons externes moi je ne suis pas compétents.

Je ne commence à devenir compétent que quand Excel peut se connecter ou peut ouvrir un documents source.

En principe Excel est capable de se connecter, de reconnaitre ou d'ouvrir un grand nombre de documents même si ce ne sont pas des documents Excel. Base de données Access ou autre, SAP... tous les espoirs sont permis dès lors que tu es capable de visualiser ces données venues d'ailleurs. Si c'est sous forme de DATA numériques textuelles c'est préférable plutôt que des datas papiers ou image sinon il faudrait faire des contorsions compliquées pour scanner les données et les faire ingurgiter à Excel.

Mais dès lors que tu es capable de produire un fichier téléchargeable, moi (ou un autre) sera sans doute capable d'en extirper l'essentiel.

Idéalement si ton Excel est capable de trouver son chemin sur le serveur et de récupérer le fichier, la première idée qui me vient à l'esprit est de copier soit le fichier soit les données et de les coller localement pour libérer le serveur.

Après vient la phase d'extraction d'analyse et de regroupement des données sous une forme exploitable par Excel

La mise en forme de ton document final est purement cosmétique...

A+

En fait c'est le document que les gérants doivent effectivement remplir, et le superviseur le consulte tel quel.

Le document de saisie et d'export (gérants) est exactement le même que celui d'import (consultation superviseur)

Je ne peux pas leur faire remplir un fichier avec juste des chiffres à la suite genre CSV ou juste des colonnes à la suite etc... il doivent également pouvoir analyser ce qu'ils voient et certains ne sont pas du tout à l'aise avec des analyses plus poussées en simple tableau et se contente d'analyser ce qu'ils voient.

Je n’ai pas d'autres moyens malheureusement

Le meilleur moyen pour un export serait de faire un jeu de miroir si je peux l'exprimer ainsi.

Le document de récolte de données reproduit ce qu'il y a dans le classeur source, mais, encore une fois, il y a plusieurs possibilité :

  • Le classeur de collecte (superviseur) reproduit fidèlement le classeur "st-jacques" dans un onglet st-jacques au côtés des autres onglets des autres magasins déjà importé (leur création automatique au fur et à mesure reste entier)
    Le classeur de récolte a donc 1 onglet par magasin
  • Le classeur de collecte (superviseur) reproduit le classeur "st-jacques" mais, puisque la mise en forme est strictement la même pour tous les classeurs sources, change les données collectées en fonction du magasin choisi par le superviseur par un menu déroulant
    le classeur de récolte a donc 1 seul onglet (par semaine?) et c'est le superviseur qui choisi quelles données consultés en choisissant le magasin

Je comprends tout à fait que le type de données à l'exportation est difficile dans cette mise en forme.

Il faudrait que je regarde pour transformer de telle données en fichier CSV pour faciliter la liaison entre les deux classeurs. je ne sais pas faire mais bon, je là pour apprendre aussi

C'est fou comment Excel demande une telle rigueur alors que le projet n'est même pas encore commencé

Déjà il n'y a rien dans Excel qui lui dit :

1 - C'est aujourd'hui dimanche, il est 2" h 59 il va falloir se réveiller, éventuellement rallumer le PC se connecter au serveur et

2 - Changer les données dont mon classeur à besoin.

La problématique # 1 n'est pas un problème Excel mais doit pouvoir se résoudre quand même avec la programmation ad-hoc dans le gestionnaire de taches Office. La condition préliminaire étant que le PC soit allumé... mais là encore il existe des dispositifs mécaniques qui permettent d'allumer automatiquement un "truc" et de lancer un programme quelconque.

Pour tout ce qui touche à la partie préliminaires, je ne suis pas compétent.

Une fois qu'Excel est allumé et ton fichier cible ouvert, tous les espoirs sont permis : Si toi-même est capable d'importer les données directement dans Excel à partir de son propre menu, c'est que ton fichier est capable de faire le boulot tout seul si on le programme correctement.

Il y a dans le ruban Excel un enregistreur de macro qui te permet d'enregistrer toutes les informations nécessaires pour récupérer les données sur le serveur. Une fois que tu as enregistré les opérations de collecte pour au moins 2 fichiers. On doit être capable d'extrapoler pour la totalité des fichiers.

C'est un gros travail d'analyser l'enregistrement fait par l'enregistreur et de l'optimiser pour récupérer les fichiers de tous les points de vente mais c'est faisable.

Pour résumer : Pas besoin de blabla.Ouvre le document que tu as joint et met en marche l'enregistreur.

Ensuite importe 2 fichiers sources dans 2 feuilles séparées puis arrête l'enregistreur.

Tu nous donnes l'enregistrement fait et il se trouvera surement quelqu'un capable d'extrapoler et de finaliser la macro pour les 42 magasins...

Après la programmation c'est un vrai travail, qui demande beaucoup de rigueur et qui est rémunéré à hauteur de la difficulté. Mais il se trouve sur les forums de nombreux développeurs retraités qui ne demandent qu'a s'entretenir un peu les neurones pour peu que le sujet les intéresse. Donc tu es au bon endroit pour aller à la pêche.

In fine, c'est comme quand on va à la pêche : Est-ce que le poisson à faim... Ça je ne peux pas présumer !

Voir aussi mon message en MP

A+

Rechercher des sujets similaires à "creation programmee nouveau classeur"