OVH Cloud OVH Cloud

Fonction Indirect

2 réponses
Avatar
Fredo \(67\)
Bonjour,

J'ai une multitude de classeurs dont je fait une synthése
Chacun de ces classeur posséde une cellule nommée "marche"
les classeurs sont dans des répertoires différents

Je cherche à faire ceci

En colonne A, je tape le nom (précisément) des classeurs
En colonne B, Excel affiche le contenu de la cellule "marche" pour chacun
des chantiers renseignés en A

J'ai essayé avec la formule Indirect
En A1 : Chantier Valérianes
En B1 : =indirect("'c:\classeurs\base\"&A1&".xls'!marche")
théoriquement cela reviendait à taper en B1 ='c:\classeurs\base\Chantier
Valérianes.xls'!marche

Hors cela me renvoie #ref et l'aide de Excel dit que Indirect renvoi #Ref si
on fait appel à une valeur contenue dans un classeur qui n'est pas ouvert.

Comment pourais-je résoudre mon probléme
sachant que

- Je cherche une fonction
- Les classeurs doivent rester fermés

Merci.

2 réponses

Avatar
RaMa
Bonsoir

Laurent Longre a ta solution

http://xcell05.free.fr/forums/viewtopic.php?idp

Salutations
RaMa

"Fredo (67)" a écrit dans le message de news:

Bonjour,

J'ai une multitude de classeurs dont je fait une synthése
Chacun de ces classeur posséde une cellule nommée "marche"
les classeurs sont dans des répertoires différents

Je cherche à faire ceci

En colonne A, je tape le nom (précisément) des classeurs
En colonne B, Excel affiche le contenu de la cellule "marche" pour chacun
des chantiers renseignés en A

J'ai essayé avec la formule Indirect
En A1 : Chantier Valérianes
En B1 : =indirect("'c:classeursbase"&A1&".xls'!marche")
théoriquement cela reviendait à taper en B1 ='c:classeursbaseChantier
Valérianes.xls'!marche

Hors cela me renvoie #ref et l'aide de Excel dit que Indirect renvoi #Ref
si
on fait appel à une valeur contenue dans un classeur qui n'est pas ouvert.

Comment pourais-je résoudre mon probléme
sachant que

- Je cherche une fonction
- Les classeurs doivent rester fermés

Merci.




Avatar
AV
Comment pourais-je résoudre mon probléme


Une façon de contourner :
Ouvrir tes classeurs
Dans le classeur résultat définir autant de noms que nécessaire qui pourraient
avoir la forme suivante :
"marche1" fait réf à : =[ChantierTruc.xls]Feuil1!$A$1
"marche2" fait réf à : =[ChantierMachin.xls]Feuil1!$A$1
"marche3" fait réf à : =[ChantierChose.xls]Feuil1!$A$1
etc.
Ceci fait, refermer les classeurs sources
Dans ton classeur résultat "Feuil1" (c'est à adapter) en A1 : données >
validation > liste > marche1;marche2;marche3..
Dans le module de la feuille :
Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$A$1" Then Exit Sub
Application.EnableEvents = False
[B1] = "=" & [A1]: [B1] = [B1]
Application.EnableEvents = True
End Sub

AV