formule INDIRECT

delphineengalere

XLDnaute Nouveau
Bonjour,
Je souhaite aller chercher une référence dans un autre classeur excel. J'ai fait la formule suivante mais ça j'ai #REF ! en résultat :
=SOMME(INDIRECT("[01TAB-BAL12MOIS-"&A65&"-2014-12-31.xlsm];BAL_AV_JANV-NàDEC-N!C:C"))
Le classeur est ouvert.
Help !!
Merci
 

Modeste

XLDnaute Barbatruc
Re : formule INDIRECT

Bonjour delphineengalere et bienvenue sur notre banc de nage,
Bonjour Tibo62,

Que fait là ce ';' entre le crochet fermant, derrière le nom du fichier et le nom de la feuille :confused:
Voir aussi si des apostrophes ne sont pas requises (une juste après les premiers guillemets, la seconde juste avant le '!')

... Pour le reste, comme on ne connaît pas la chaîne qui devrait être reconstituée, ni le contenu de la cellule A65, ça va être compliqué!
 

Tibo62

XLDnaute Occasionnel
Re : formule INDIRECT

Cette discussion a déja eu lieu sur le forum il existe un outil recherche très interessant :).
C'est Monsieur Hasco qui a développé ce code je te le joins fait en bonne usage :

Function LireCellule_ClasseurFerme( _
Chemin As String, _
Fichier As String, _
Feuille As String, _
Cellule As String) As Variant

Application.Volatile


Dim Cible As String, c As Range
Feuille = Feuille & "$"

Cible = Cellule & ":" & Cellule

'tester si Cible est bien une référence à cellule la testant dans la feuille active
On Error Resume Next
Set c = Range(Cible)
'Si la cilbe n'est pas une addresse de cellule alors renvoyer l'erreur #Ref
If c Is Nothing Then
LireCellule_ClasseurFerme = CVErr(xlErrRef)
Exit Function
End If


Dim Source As New ADODB.Connection
Source.CursorLocation = adUseClient
Source.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & Chemin & "\" & Fichier & _
";Extended Properties=""Excel 12.0;HDR=No"";"

If Source.State <> adStateOpen Then
LireCellule_ClasseurFerme = CVErr(xlErrNull)
Set Source = Nothing
Exit Function
End If

Dim Rst As New ADODB.Recordset
Rst.Open "SELECT * FROM [" & Feuille & Cible & "]", Source, adOpenStatic, adLockBatchOptimistic

If Rst.State = adStateOpen Then
LireCellule_ClasseurFerme = Rst(0).Value
Rst.Close
Else
LireCellule_ClasseurFerme = CVErr(xlErrNA)
End If

Source.Close
Set Source = Nothing
Set Rst = Nothing
End Function


Attention :
Pour les versions .xls utiliser : Extended Properties=Excel 8.0 (versions d'Excel 97, 2000 et 2002), mais pour les versions 2007 (12.0).
 
Dernière édition:

Paf

XLDnaute Barbatruc
Re : formule INDIRECT

Bonjour à tous

dans une formule, en précisant le chemin du fichier, ça doit marcher avec le fichier fermé (mais pas sûr que ça fonctionne aussi si le fichier est ouvert).

=SOMME(INDIRECT("'C:\Répertoire1\XL\[01TAB-BAL12MOIS-"&A65&"-2014-12-31.xlsm]BAL_AV_JANV-NàDEC-N'!C:C"))

A+
 

Modeste

XLDnaute Barbatruc
Re : formule INDIRECT

Salut Paf,

INDIRECT sur un classeur fermé :confused: ma machine à moi continue de refuser obstinément de faire ce genre de chose! :D

Laurent Longre avait d'ailleurs ajouté INDIRECT.EXT dans la macro complémentaire Morefunc ... et visiblement Hasco avait écrit quelque chose allant dans le même sens, si on en croit Tibo62!
Tous ces gens se seraient "décarcassés" pour rien!? :)
 

Paf

XLDnaute Barbatruc
Re : formule INDIRECT

Re

et bonsoir Modeste

certaines formules, avec référence absolues à un fichier fermé, fonctionnent.

J'en ai tiré hâtivement la conclusion que c'était valable pour toutes les formules !

Merci de m'avoir appris, avec beaucoup d'humour, que ce n'était pas le cas.
 

Discussions similaires

Réponses
4
Affichages
307

Statistiques des forums

Discussions
312 344
Messages
2 087 444
Membres
103 546
dernier inscrit
mohamed tano