Faire appel à la cellule d'un classeur défini automatiquement

solmyr56 -  
 solmyr56 -
Bonjour,

J'aurais besoin, pour mon travail, d'utiliser une fonction excel, mais je ne sais pas si elle existe.
Cette fonction me servirait pour mieux appréhender mes stocks. J'explique :

Tous les jours, je fais un inventaire détaillé de mes stocks de marchandises. Cela me permet d'évaluer si ("ce que j'ai reçu" - "ce que j'ai livré") + "stock initial" = "inventaire".

Or il arrive que j'observe des différences. Je dois donc savoir s'il s'agit d'une erreur d'inventaire, de livraison, de saisie de réception, etc.
Tout est enregistré dans un fichier indépendant chaque jour : Par exemple "stock 16 11 2013" ; "stock 17 11 2013" ; "stock 18 11 2013" etc. Tous les jours j'ai un nouveau fichier.

Je voudrais créer une cellule A1 qui soustrait le contenu d'une cellule A2 au contenu d'une autre cellule A2 du fichier de la veille. Je précise bien cela : Il doit s'agir d'une référence au dernier fichier en date (que ce soit de la veille, de l'avant-veille, ou même de la semaine d'avant, peu importe, mais il faut que ce soit le dernier fichier enregistré.

Connaissez-vous une fonction qui permet de faire appel à un fichier, non pas par son nom, mais par une variable dépendant de sa date de création ou de dernière modification ?

Vous remerciant d'avance.

6 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

En fonction de la structure que tu as fournie, je t'ai fait :
- un module pour récupérer automatiquement le dernier classeur
- une fonction pour calculer l'écart

Comme tes classeurs n'ont pas de macro, le plus simple c'est d'importer le module dans ton classeur personnel (mode d'emploi)

Ensuite tu remplaces les valeurs en gras par tes feuilles et répertoire
Const rep = "C\monrépertoire\" ' répertoire stocks
Const feu = "Feuil1" ' feuille stocks

Puis dans thisworkbook tu mets cette macro
Private Sub Workbook_Open()
    Call recherche_fichiers
End Sub

et tu sauvegardes tes macros personnelles, puis tu peux ouvrir ton fichier du jour.

https://www.cjoint.com/c/CKtlqMrseBN

Il faut dans ton classeur mettre la fonction "écarts" comme je l'ai mise dans ton exemple
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
1
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Pour avoir le résultat de la fonction que tu souhaites, tu ne trouveras pas de fonction standard excel mais il te faut une fonction personnalisée en VBA.

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels mais avec quelques valeurs, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu.
0
solmyr56
 
Bonsoir,

Avant tout, merci de ta réponse et de ta spontanéité.
Je ne peux, pour des raisons de confidentialité, transmettre des informations de mon travail sur internet.

Ceci dit, j'ai fait un tour à gauche à droite pour m'informer sur le VBA, et j'ai peut-être trouvé une solution meilleure -et peut-être plus simple- pour résoudre mon problème :
Te semble-t-il possible ?

Je crée un bouton "comparer"
Quand je clique dessus, ça m'ouvre une fenêtre style "Ouvrir un fichier..."
Je sélectionne manuellement le fichier qui m'intéresse.
Excel enregistre le nom du fichier concerné dans une variable "stock 16 11 2013".
Excel intègre le nom de ce fichier dans la formule de la cellule concernée "=$stock_16_11_2013;A2".

Qu'en penses-tu ?

Merci.
0
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
Bonjour,

Je ne peux, pour des raisons de confidentialité, transmettre des informations de mon travail sur internet.

Je ne t'ai pas demandé cela mais un exemple de structure des données, sans éléments personnels mais avec quelques valeurs, : avec produit1, produit2, etc tu ne divulgue rien. Il te suffit de créer un petit bout de classeur pour que l'on puisse voir l'organisation de ta feuille.

Si je te demande cela c'est que le codage VBA dépend totalement de l'organisation et que si je te donne un codage passe partout il ne va pas convenir.

Si tu veux avoir systématiquement la comparaison, tu n'as pas besoin de bouton et l'ouverture de ton classeur doit pouvoir faire automatiquement la fonction.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
solmyr56
 
Ok, alors voilà le type de tableau que j'ai :

http://cjoint.com/13nv/CKrpBUNmKMh.htm

Je voudrais rajouter une colonne "Ecart" qui compare le résultat de chaque valeur de la colonne "Total" avec la valeur de la cellule correspondante dans le fichier de la veille...
0
solmyr56
 
Merci,

Je vais essayer tout cela et voir ce que je peux en faire.

Merci pour tes efforts.
0