Valeur automatique d'après valeur autre fichier Excel

Bonjour,

Un épineux problème se pose à moi, le voici : un classeur Excell est créé chaque jour pour une ligne de production, un tableau dans celui-ci est rempli automatiquement d'après les valeurs d'un autre tableau se trouvant dans le classeur de la veille. J'ai réussi à incrémenter le tableau du classeur A avec les valeurs du tableau du classeur B, pas de problème... Voici la formule exemple pour la première cellule du tableau du classeur 02092020.xlsx

=[01092020.xlsx]PRODUCTION!$K$4

Donc mon classeur 02092020.xlsx est incrémenté automatiquement par 01092020.xslx (classeur de la veille).

Maintenant comment puis-je automatiser le fait que chaque classeur comprenne qu'il faille utiliser le classeur de la veille pour incrémenter son tableau ?

Merci pour votre aide.

Bonjour

Si le classeur de la veille est OUVERT, cette formule fait le job

=INDIRECT("["&TEXTE(AUJOURDHUI()-1;"jjmmaaaa")&".xlsx]PRODUCTION!$K$4")

Cordialement

Bonjour et merci pour votre réponse,

Est-ce qu'il faut modifier quelque chose dans la formule que vous préconisez ? En l'état cela ne fonctionne pas. Cela renvoie dans la cellule cible #REF!

Pourtant les deux classeurs sont bien ouverts et la cellule dans lequel la valeur est recherchée est correcte.

Si je comprends bien c'est ce bout de formule qui renvoie automatiquement au classeur de la veille ? ["&TEXTE(AUJOURDHUI()-1;"jjmmaaaa")&".xlsx]

Bonjour,

Il est minuit passé, donc peut-être que votre classeur de la veille n'existe pas encore (enfin vous êtes dessus) et le précédent est désormais celui de l'avant-veille...

A moins que vous ne fassiez le test avec la formule aujourdhui sur un des classeurs de septembre...

Rien à voir avec le sujet mais pourquoi ne pas libeller vos noms de classeur AAAAMMJJ ? Ce serait plus simple pour trier chronologiquement ces fichiers.

Bonsoir 3GB, êtes-vous devin ? J'allais justement poster pour dire que je testais sur des fichiers prévisionnels de Septembre et que donc la formule ne fonctionnait pas puisque AUJOURDUI() renvoyait à... aujourd'hui !!

Je crois qu'il faut que je dorme un peu... Merci pour votre message et votre perspicacité !

Devin, divin, je n'aime pas trop me vanter...

Oui, vous étiez en avance, c'est pour ça. Vous y seriez arrivé en fin de compte, mais dans quelques jours...

Bonne nuit à vous,

Bonjour à tous, après une bonne nuit de repos une question me vient à l'esprit : Est-il possible de consolider les données issues du classeur de la veille sur le classeur du jour ? La formule fonctionne parfaitement mais à l'inconvénient d'obliger à ouvrir systématiquement le classeur de la veille. Une fois les données importées peut-on les "fixer" une bonne fois pour toutes ? Merci.

Bonjour nicodak,

Oui, c'est possible, notamment en passant par VBA, mais il faudrait cibler avec précision le besoin en détaillant bien ce que contiennent les fichiers.

Est-ce que le classeur du jour est une copie retravaillée du classeur de la veille ? Est-ce qu'un classeur RECAP traitant les classeurs journaliers ne serait pas préférable, plutôt que lier tous les classeurs les uns aux autres ? Est-ce qu'un seul et unique classeur n'est pas envisageable avec un onglet qui contient les données et un autre qui contient les récap ?

Ensuite que faut-il ou comment faut-il consolider les données ?

Cordialement,

Hello 3GB et merci de vous intéresser au problème.

J'avais effectivement pensé à regrouper les feuilles dans un même classeur mais en fait chaque classeur contient 3 onglets (Administration/Production/Livraison) donc je pense que ce serait assez vite confus dans le classeur. Sachant également que je prépare ces classeurs pour des employés qui ne sont pas forcément familier de la suite Office. J'essaie de faire au plus simple et donc d'automatiser le renseignement de données le plus possible.

Chaque classeur quotidien est effectivement une copie parfaite du classeur précédent et ainsi de suite.

Pour résumer : une boulangerie a besoin d'un fichier quotidien où sont renseignés les volumes de production pour chaque produit. Ces volumes sont impactés quotidiennement par le volume des retours de chaque produit.

Donc si A est produit à X exemplaires le jour J et que le soir il y'a Y invendus alors la production à J+1 sera de X-Y

C'est pour cela que le fichier J à besoin des infos de J-1, etc... etc...

Salut nicodak,

C'est marrant parce que ma première réponse sur ce forum concernait un problème similaire : une variation de stock en somme.

Vous pouvez très bien utiliser un unique fichier, qui probablement ne contient qu'un seul onglet de saisie (Administration si je me trompe pas) et 2 onglets récapitulatifs (je suis peut-être totalement à côté de la plaque).

Enfin bref, votre fichier peut être mis à jour quotidiennement avec édition de pdf automatique (on conserve une trace journalière, inchangeable) et on fait une réinitialisation des "stock" (stock finaux deviennent stock de départ). Je pense que ce serait plus simple.

J'ai finalement opté pour une Macro !

Dans le classeur 20082020.xslm j'ai créé un bouton intitulé "ACTIVATION" sur l'onglet administration. En cliquant sur celui-ci cela ouvre actuellement le fichier 19082020.xslm puis le referme.

Maintenant il me reste à régler 2 petites choses :

  1. Que la macro ouvre le fichier J-1 automatiquement, voici ce que j'ai actuellement
    Sub ACTIVATION()
    '
    ' ACTIVATION Macro
    ' Ouvre le classeur J-1
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+A
    '
        Workbooks.Open Filename:= _
            "C:\Users\Admin\test PROLIV_B\SEPTEMBRE\19082020.xlsx"
        ActiveWindow.Close
    End Sub
  2. Lorsque le fichier J-1 est ouvert puis se referme, Excell demande si je veux enregistrer ou pas le classeur avant de le refermer, alors qu'il n'y à eu aucune modification sur celui-ci. Pourquoi ?

Merci !!

Pour le deuxième point c'est réglé puisqu'il faut que le classeur J-1 reste ouvert pour que les données importées perdure sur le classeur du jour, donc au lieu de fermer le classeur je l'ai réduit. Reste l'automatisation VBA pour l'ouverture du classeur J-1.

Pour fermer, je crois qu'il vaut mieux saisir :

ActiveWorkbook.Close savechanges:=True

Ca ferme sans avoir à agir en enregistrant les modifications, même qu'il y en a pas eu...

Désolé d'insister mais tu devrais réfléchir à la solution de créer un seul fichier. Tu peux copier tes totaux (à reprendre le lendemain), tu supprimes les saisies du jour à effacer et tu colles en valeurs les totaux (de la veille)... et ton fichier et réinitialisé (et entre temps tu peux faire une édition pdf pour conserver une trace).

A bientôt,

Tu devrais pas essayer de lier ces fichiers entre eux car au moindre problème, c'est très embêtant, ça se répercute.

Avoir un fichier qui en exploite d'autres, ok mais dans ce cas l'intérêt n'est limité et le risque de problème est plus important.

Mais, si tu souhaites garder cette option, le premier point me semble bien.

Ensuite, tu pourrais copier les valeurs plutôt que reprendre les formules. C'est moins sûr et ça t'oblige à rester avec le classeur ouvert tout le long de l'utilisation.

Je comprends tout à fait votre point de vue mais outre l'onglet ADMIN il y a 2 autres onglets : PRODUCTION et VALIDATION. Donc si je rassemblais dans un seul classeur, disons mensuel, tous les onglets quotidiens il y'en aurait une bonne soixantaine et je crains que le personnel s'y perde... (à moins de les cacher au fur et à mesure, ou bien comme vous le dites de générer un PDF pour chaque journée terminée et de supprimer les 2 onglets J-1).

J'aimerais essayer d'automatiser via VBA l'ouverture du classeur J-1 pour importer les données de production de la veille pour voir ce que cela donne.

Mais je vais sérieusement réfléchir à votre idée, merci encore.

Ce que je propose suggère qu'il n'y aurait pas d'onglet J-1 et qu'il n'y aurait qu'un seul et éternel fichier (à éventuellement mettre à jour annuellement).

Pourquoi ? Car ce fichier contient de la saisie et des formules dépendant de cette saisie. Ce n'est qu'une interface de tenue d'un journal, et les journaux sont archivés grâce à l'édition de PDF.

Après, je comprends qu'il est difficile de réorganiser toute une organisation mais franchement, tu ferais bien d'y réfléchir.

Bonne soirée à toi,

Vous avez raison, je vais faire comme vous le préconisez.

Cependant, plutôt que de générer un fichier PDF des 2 onglets PRODUCTION et LIVRAISON je souhaiterais extraire quelques données pour les consolider dans un fichier global (mensuel ou annuel).

Il y'a quelques jours je ne connaissais même pas l'existence de VBA dans Excell alors j'avoue que je ne sais pas trop comment m'y prendre. J'ai lancé un enregistrement de macro et :

  1. j'ouvre un fichier Excell préalablement mis en forme : classeurA.xlsx
  2. Je copie/colle les données dans le tableau prévu à cet effet
  3. je referme classeurA.xlsx

Tout va bien, mais si je relance la macro cela écrase les données précédentes. Comment faire pour que les données s'inscrivent dans une nouvelle colonne chaque jour ?

Merci.

Bonjour nicodak,

L'enregistreur de macro est génial au début, ça permet de découvrir les correspondances entre le code et les actions sur excel. Cependant, il a ses limites. Il définit les étapes de façon statique (je refais ce qu'on m'a dit de faire la 1ère fois et puis c'est tout).

Le but est de partir de l'enregistreur pour de découvrir, de voir les étapes à réaliser et ensuite dynamiser le plus possible, en posant les cas particuliers (avec des si, des select case) et en optimisant avec des sous-routines (via les boucles for, while, ...).

Est-ce que ça vous dérangerait de m'envoyer une version du fichier ? Pour que je vois de quoi il retourne.

Hello 3GB,

Je suis un peu pressé par le temps, mon ami aimerait pouvoir utiliser ce fichier assez rapidement et je bloque là-dessus.... Comprendre et jouer avec VBA en quelques jours me semble quelque peu présomptueux.

Je veux bien vous envoyer une copie de mon fichier mais ne le revendez pas à prix d'or !!

J'ai revu un peu à la baisse ce que j'attends de l'automatisation, en cliquant sur le bouton NOUVELLE JOURNEE DE PRODUCTION, 4 actions :

  1. EXPORTER dans un nouveau classeur les données de production de l'onglet PRODUCTION K3:K20
  2. EXPORTER dans le même nouveau classeur les données de RETOURS de l'onglet ADMINISTRATION J70:J87
  3. ECRASER les données dans l'onglet ADMINISTRATION G70:G87 par les données PRODUCTION K3:K20
  4. SUPPRIMER les données de retour de l'onglet ADMINISTRATION J70:J87

Avec l'enregistrement VBA j'ai su le faire à peu près sauf, comme je le disais plus haut, la consolidation quotidienne des données dans le nouveau fichier..

8210820.xlsx (32.97 Ko)
8analyse-prod.xlsx (11.52 Ko)

En quelques jours, c'était un projet ambitieux, c'est sûr.

C'est vraiment dommage parce que j'étais au téléphone avec Bill Gates à l'instant et on parlait de ton fichier justement

Je regarde les fichiers, je vois ce que je peux faire. et je reviens vers toi.

A bientôt,

Rechercher des sujets similaires à "valeur automatique fichier"