Bonjour à vous
🙂
Voilà mon épineux problème à l'aide d'un exemple simplifié pour ESSAYER d'être le plus explicite possible !
(Je tiens à précisé que j'ai bien utilisé la fonction rechercher mais même si j'ai trouvé des problèmes similaires au mien, je n'y suis pas arrivé)
Dans mon classeur actif "Récap.xls" :
En A1 : du texte, donnant le chemin ou se trouve les classeurs fermés source,
Ex: D:\Travail\
De A2, B2, C2 à N2 : du texte, donnant les noms des classeurs fermés source,
Ex: Denis, Michel, Sandra, ...
En A3 : du texte, donnant le nom de l'onglet devant être recherché,
Ex: Janvier, Février, Mars …
En A4 : du texte, donnant l'emplacement de la cellule,
Ex: B1, B2, B3 …
Donc, comme j'aimerais récupérer ces infos en fonction de mes variables ci-dessus j'ai utilisé la commande concatener :
En A5 : une formule, =CONCATENER("'";A1;"[";A2;".xls]";A3;"'!";A4)
Qui me donne en réponse du texte : 'D:\Travail\[Denis.xls]Janvier'!B1
Ensuite comme je veux la réponse à cette formule (qui est en faite du texte), j'ai trouvé sur Internet une petite fonction personnalisée : EVAL
🙂
Exemple d'utilisation de "EVAL" :
En A1 un nombre : 25
En A2 du texte : (2*A1)-7
En A3 la formule : =eval(A2) -> résultat : 43
Alt-F11, Insertion / module, copier ce qui suit :
Public Function eval(inp)
Application.Volatile
If Left(inp, 1) <> "=" Then inp = "=" & inp
eval = Application.Evaluate(inp)
End Function
Mais voilà, en faisant =Eval(A5), j'obtiens un résultat UNIQUEMENT quand mon classeur source est ouvert
😡 (ce que je comprends absolument pas
😕 ).
Donc si quelqu'un aurais une idée sur le problème voir même une autre méthode à me proposer ...
Merci d'avance !