Tres souvent faut chercher un peu ... :/
J'ai trouvé ca: sur disciplus simplex..... (voir en dessous), mais est'il possible de compiler ca avec des choses de ce genre:
=INDIRECT(''S:\\Production\\...\\[trs btm - ' &TEXTE(LIGNE()-5;'00') &'-06.xls]btm 1'!$cs$44')
C'est possible de compiler avec le truc de ci dessous ?????
trouvé sur disciplus simplex.....
Est-il normal que je ne puisse pas utiliser INDIRECT pour établir une liaison vers un classeur fermé ? =INDIRECT(\\\\\\''C:\\Mes Documents\\[rien.xls]Feuil1'!$A$1\\\\\\') qui marche très bien quand rien est ouvert, renvoie #REF! dès que rien.xls est fermé alors que ='C:\\Mes Documents\\[rien.xls]Feuil1'!$A$1 marche très bien même si rien est fermé
Oui c'est normal..
En gros : quand le classeur est en mode recalcul, Excel n'effectue
aucune opération susceptible d'interférer avec les calculs en cours. En
l'occurence, aller chercher le contenu d'un classeur fermé supposerait
qu'il établisse d'abord une liaison temporaire, lise la cellule, et
détruise ensuite cette liaison. Comme ce type d'action est verrouillé en
mode recalcul, INDIRECT échoue.
C'est pour la même raison qu'il est impossible, par exemple, d'ouvrir un
nouveau classeur ou de modifier le contenu d'une plage à l'intérieur
d'une Function appelée par une formule de cellule.
Une parade toutefois, à l'aide de VBA :
Function RECUP(Fichier As String, Feuille As String, _
Ligne As Long, Col As Integer)
With CreateObject('Excel.Application').Workbooks.Open(Fichier)
RECUP = .Worksheets(Feuille).Cells(Ligne, Col)
.Close False
End With
End Function
Ensuite, par exemple =RECUP('C:\\Test.xls';'Feuil1';5;10) pour récupérer
la cellule Feuil1!J5 de ce classeur fermé (note qu'il est quand-même
temporairement ouvert par la fonction...)
Ca marche pour la seule raison que la fonction lit le contenu du
classeur fermé par l'intermédiaire d'une nouvelle instance d'Excel.
Celle-ci étant indépendante de la session active, le 'verrouillage' n'a
plus lieu.
Attention, chaque appel de RECUP lançant une nouvelle instance d'Excel,
cette fonction n'est pas très rapide à l'exécution... à utiliser donc
avec modération!
Laurent Longre,
Ajouté ou modifié le 25/10/2003 (N°837)
😱