Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1468 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel - Liaison en fonction de la valeur d'une cellule

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel - Liaison en fonction de la valeur d'une cellule

n°2181638
belgothar
Posté le 21-03-2013 à 19:57:46  profilanswer
 

Bonjour à tous !
 
Je viens vous demander de l'aide pour un souci qui me prend le chou depuis le début de la journée :)
 
Je vous l'expose en espérant être le plus compréhensible possible.
 
Je dois réaliser un tableau récapitulatif des stocks sur les 4 dernières années civiles. Pour cela je dispose de :
- 1 fichier .xls centralisateur
- 4 dossiers (1 par année : 2010-2011-2012-2013). Dans chacun de ces dossiers, 12 fichiers .xls (1 par mois) ou la tenue des stocks c'est faite jour après jour. Seuls les totaux m'intéressent.
 
Donc au total, je dois pouvoir extraire des données de 48 fichiers différents (je vous parle même pas du nombre de lignes ...) bref, long peut-être mais au final, rien de bien méchant.
 
Donc voici mon problème : Si je met les liaisons directes comme ceci par exemple : ='D:\Stocks 2010\[s201001.xls]Stock'!A3 pour aller chercher mon total du mois de Janvier 2010 tout va bien tant que je reste dans l'année 2013. Mais lorsque je serais passé en 2014, il faudrait que ça donne : ='D:\Stocks 2011\[s201101.xls]Stock'!A3
Ne pouvant pas me mettre à jour chaque année, et la tâche étant relativement longue, je cherche le moyen de l'automatiser !
 
J'ai testé plusieurs choses comme ='D:\Stocks "&$A$1&"\[s"&A1&"01.xls]Stock'!A3     avec A1 =annee(aujourdhui())-3 ce qui me permet de toujours remonter 4 ans plus tôt.
Mais rien ... Je n'ose pas me lancer dans une fonction INDIRECT car il faudrait pour que cela fonctionne que les 48 fichiers Excel soient ouverts pour remonter la totalité des informations (enfin il me semble), ce qui est impossible.
 
Bref si vous avez des idées je suis plus que prenneur.
 
En espérant avoir expliqué assez clairement :)
 
Cordialement,

mood
Publicité
Posté le 21-03-2013 à 19:57:46  profilanswer
 

n°2181687
vave
Nice to meet me
Posté le 22-03-2013 à 07:58:56  profilanswer
 

Bonjour,
il faut que tu reconstruises le chemin avec la fonction INDIRECT()
 
=INDIRECT("='D:\Stocks "&annee(aujourdhui())-3&"\[s"annee(aujourdhui())-3&"01.xls]Stock'!A3" )


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2182043
belgothar
Posté le 23-03-2013 à 17:07:50  profilanswer
 

La fonction Indirect marche effectivement mais seulement lorsque j'ouvre le fichier cible. :s
Je suis en train de réfléchir à une autre façon de faire. Celle là me semble trop lourde. Lorsque l'on ne peut pas défoncer le mur, autant le contourner ^^
 
Merci qd même :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Excel - Liaison en fonction de la valeur d'une cellule

 

Sujets relatifs
SOMMEPROD EXCELRecherche d'un zero de la fonction cosinus par dichotomie
Lancement d'un bat via la fonction system phpExcel vb6 et acces
fonction parcourir des dossiersProblème pour modifier une fonction
[ASP.NET - C#] Récupérer valeur d'un gridviewVBA et excel Base de données
Besoin d'aide pour Filtre ExcelCopier Coller une plage excel dans PPT en format Image
Plus de sujets relatifs à : Excel - Liaison en fonction de la valeur d'une cellule


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR