|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 14 ![]() |
Bonjour à tous,
Je dispose d'un fichier source dans lequel je dois aller régulièrement chercher des données. Ceci ne pose aucun problème et la syntaxe est assez simple : =[Source.xls]Feuil1!$A$12 Cet affichage a lieu lorsque le fichier Source.xls est ouvert Par contre, si ce fichier Source.xls est fermé, la cellule affichera ='c:\répertoire\sous-dossier\[Source.xls]Feuil1'!$A$12 Ma contrainte : Je dois gérer des nom de fichiers différents et qui sont fermés En outre, à l'aide de la fonction CELLULE("filename";A1) je dispose de toutes les informations qui me permettent de déterminer le fichier sur lequel je dois aller chercher des données. Je peux donc dans une chaine de caractères, reconstituer l'adresse précise pour récupérer mes données sur fichier fermé : ='c:\répertoire\sous-dossier\[Autresource.xls]Feuil1'!$A$12 La fonction INDIRECT() ne me permet pas de rendre cette chaîne de caractères opérationnelle, car elle ne marche que sur les fichiers ouverts. Auriez-vous une syntaxe qui me permette de rendre cette chaîne active et d'aller chercher les données sur Autresource.xls ? Je vous précise que je suis nul en VBA et que je souhaite diffuser des fichiers sans macros. Merci d'avance pour votre aide et bonne journée |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Patrick Utilisateur passionné Inscription : décembre 2010 Messages : 17 ![]() |
Bonjour William-Michel,forum ,
Pourrais tu essayer, par exemple : =sommeprod(--('c:\répertoire\sous-dossier\[Autresource.xls]Feuil1'!$A$12)) Mais je ne suis pas sur du tout d'avoir bien compris ce que tu voulais. Amicalement |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 14 ![]() |
Bonsoir Spepok et merci pour ta réponse
J'ai essayé l'utilisation de sommeprod avec ta syntaxe, mais malheureusement ça ne marche pas. le message d'erreur #VALEUR! Je vais essayer d'être plus explicite et décrire le contexte : Dans une société, un utilisateur récupère périodiquement des fichiers (nombre variable de fichier selon les mois) qui contiennent un chiffre d'affaires. Je dois réaliser pour un utilisateur un fichier (total.xls) qui additionnera tous les chiffres d'affaires. Cet utilisateur est très novice et je souhaite lui alléger la procédure autant que possible, en l'occurrence lui permettre d'ouvrir le fichier total.xls sans qu'il ait besoin d'ouvrir tous les fichiers contenant les données à totaliser. le fichier total.xls contient déjà sous formes de chaînes de caractères le chemin et le nom des fichiers sur lesquels il faut récupérer les données. Je souhaite d'éviter d'écrire "en dur" dans les cellules qui vont récupérer les données. En effet, si jamais ce groupe de fichiers devait être déplacé d'un répertoire à un autre, les adresses deviendraient inopérantes et obsolètes. Dans le fichier total.xls, je souhaite pouvoir changer ce chemin et concaténer les cellules me permettant d'obtenir une adresse complète pour lire la cellule choisie dans le fichier source.xls ou autresource.xls. Prenons un exemple dans le fichier total.xls : Cellule A1="C:\répertoire\sous-dossier\" (je mets les quotes pour bien montrer qu'il s'agir d'une chaîne de caractères) Cellule A2="[Autresource.xls]Feuil1'!$A$12" Cellule A3=A1&A2 La cellule A3 contient donc une chaîne complète, mais sous forme de caractères. Mon souci est de rendre cette chaîne active comme si elle était entrée en dur sous la forme 'C:\répertoire\sous-dossier\[Autresource.xls]Feuil1'!$A$12 ... ce qui me permettrait de lire la cellule A12 de Autresource.xls sans problèmes. Voilà. Bonne soirée à toi |
|
|
00
|
|
|
#4 | |
|
Nouveau Membre du Club
![]() Patrick Utilisateur passionné Inscription : décembre 2010 Messages : 17 ![]() |
Bonjour William-Michel ,forum,
Avec "morefunction" à télécharger ici: http://xcell05.free.fr/pages/telecha...x.html#Morefun Citation:
Merci à Laurent Longre Amicalement |
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 14 ![]() |
Bonjour Spepok
J'avais connaissance de cette solution. Le problème est logistique, l'utilisateur qui doit utiliser le classeur de consolidation utilise différentes machines. Ca ne va pas être simple. Un grand merci à toi et passe une bonne journée |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Patrick Utilisateur passionné Inscription : décembre 2010 Messages : 17 ![]() |
Re,
Désolé de n'avoir pu t'apporter une aide plus précieuse. A bientôt au détour d'un autre sujet. Amicalement |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 14 ![]() |
Ne sois pas désolé Spepok. Au contraire le set de fonctions proposé par Laurent Longre est une vraie réponse au problème posé et je t'en remercie. C'est juste une question de contexte particulier.
Pour info, voici ce que j'ai décidé pour mon utilisateur : - Je lui demande de créer un répertoire ad-hoc qui contiendra les fichiers à exploiter - Je lui demande d'ouvrir la totalité des fichiers (Ctrl A et ouverture d'un fichier déclenchant Excel et l'ouverture de tous les autres fichiers). Dans Total.xls, je crée une check-list qui va comparer les fichiers présents et ceux qui doivent être traités. Pour faire apparaître les fichiers présents, j'active une macro élémentaire Excel 4 de type fichiers() et je place la formule suivante sur une vingtaine de lignes : =SI(LIGNE()<NBVAL(Fichiers);INDEX(Fichiers;LIGNE());"") Il sera donc facile de comparer si les fichiers présents correspondent bien à ceux qui doivent être traités. Après, c'est de l'ergonomie pour l'utilisateur avec quelques formats conditionnels avec du rouge, du vert vif et du bleu ! Et puis cette fois INDIRECT() n'aura plus aucune excuse puisque les fichiers seront tous ouverts ! Bonne soirée |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 301 ![]() |
Bonjour,
Dans ce cas, tu peux aussi faire un enregistrement de l'environnement de travail. Fichier/Enregistrer l'espace de travail... et tu lui donnes un nom. L'environnement sera enregistré avec le suffixe xlw Ainsi quand l'utilisateur ouvrira ce fichier. Tous les fichiers ouverts au moment de l'enregistrement vont s'ouvrir et le classeur actif sera celui qui l'était au moment de l'enregistrement.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mars 2009 Messages : 14 ![]() |
Merci Corona,
Tu as raison, on ne pense pas suffisamment à la sauvegarde de l'environnement qui est très pratique. Cela dit, dans un cas ou le nombre et le nom des fichiers est aléatoire, cette fonction n'est utile qu' "a posteriori". Bonne journée |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com