Problème difficile (si, si, vraiment !) avec Excel !
Problème difficile (si, si, vraiment !) avec Excel ! - Logiciels - Windows & Software
MarshPosté le 29-09-2006 à 19:05:48
Bonjour Bon voilà mon problème en résumé : Je n'arrive pas à récupérer des informations contenues dans un classeur fermé
Je vais vous exposer mon cas précis avec un exemple.
Voilà les infos sur mon classeur FERME (doù doit donc provenir mes infos): Répertoire et nom : D:\Travail\Test.xls Localisation de l'info : Feuil1, Cellule A1
Donc pour rappeler cette cellule dans mon nouveau classeur "Récap.xls" il faut entrer le code suivant : ='D:\Travail\[Test.xls]Feuil1'!A1
Jusque là rien de méchant
Cependant 'D:\Travail\[Test.xls]Feuil1'!A1(Attention : SANS LE SIGNE = ) est obtenu dans mon classeur Récap.xls à partir de la commande concatener qui va chercher le répertoire, le nom de fichier et le nom de l'onglet dans différente cellule de ma feuille courante (par exemple en C1; C2 et C3) Ce qui donne en D1 (dans Récap.xls) la fomule : =Concatener("'";C1;"[";C2;".xls]";C3;"'!A1" ) qui me renvoi exactement la bonne syntaxe : 'D:\Travail\[Test.xls]Feuil1'!A1
Enfin, pour que Excel me calcul ma cellule D1 (qui est seulement du texte) j'utilise une petite macro en E1 que j'ai trouvé sur Internet qui est la fonction Eval : =EVAL(D1)
Petit Topo sur cette fonction (peut-être bien pratique parfois )
Citation :
Alt-F11, Insertion / module, copies-y ce qui suit :
Public Function eval(inp) Application.Volatile If Left(inp, 1) <> "=" Then inp = "=" & inp eval = Application.Evaluate(inp) End Function
Exemple d'usage : En A1 un nombre : 25 En A2 du texte : (2*A1)-7 En A3 la formule : =eval(A2) -> résultat : 43
Mais voilà le , même si j'ai bien mon chemin d'accés complet, Excel me calcul SEULEMENT le résultat quand mon classeur Test.xls est ouvert
Voilà si quelqu'un à une astuce je suis preneur
(peut-être que j'aurais pas du choisir le Vendredi soir pour cà )
Message édité par michel 1664 le 29-09-2006 à 19:20:18
Marsh Posté le 29-09-2006 à 19:05:48
Bonjour
Bon voilà mon problème en résumé : Je n'arrive pas à récupérer des informations contenues dans un classeur fermé
Je vais vous exposer mon cas précis avec un exemple.
Voilà les infos sur mon classeur FERME (doù doit donc provenir mes infos):
Répertoire et nom : D:\Travail\Test.xls
Localisation de l'info : Feuil1, Cellule A1
Donc pour rappeler cette cellule dans mon nouveau classeur "Récap.xls" il faut entrer le code suivant :
='D:\Travail\[Test.xls]Feuil1'!A1
Jusque là rien de méchant
Cependant 'D:\Travail\[Test.xls]Feuil1'!A1 (Attention : SANS LE SIGNE = ) est obtenu dans mon classeur Récap.xls à partir de la commande concatener qui va chercher le répertoire, le nom de fichier et le nom de l'onglet dans différente cellule de ma feuille courante (par exemple en C1; C2 et C3)
Ce qui donne en D1 (dans Récap.xls) la fomule : =Concatener("'";C1;"[";C2;".xls]";C3;"'!A1" ) qui me renvoi exactement la bonne syntaxe : 'D:\Travail\[Test.xls]Feuil1'!A1
Enfin, pour que Excel me calcul ma cellule D1 (qui est seulement du texte) j'utilise une petite macro en E1 que j'ai trouvé sur Internet qui est la fonction Eval : =EVAL(D1)
Petit Topo sur cette fonction (peut-être bien pratique parfois )
Alt-F11, Insertion / module, copies-y ce qui suit :
Public Function eval(inp)
Application.Volatile
If Left(inp, 1) <> "=" Then inp = "=" & inp
eval = Application.Evaluate(inp)
End Function
Exemple d'usage :
En A1 un nombre : 25
En A2 du texte : (2*A1)-7
En A3 la formule : =eval(A2) -> résultat : 43
Mais voilà le , même si j'ai bien mon chemin d'accés complet, Excel me calcul SEULEMENT le résultat quand mon classeur Test.xls est ouvert
Voilà si quelqu'un à une astuce je suis preneur
(peut-être que j'aurais pas du choisir le Vendredi soir pour cà )
Message édité par michel 1664 le 29-09-2006 à 19:20:18