Insérer la valeur d’une cellule dans une formule

BChaly

XLDnaute Occasionnel
Bonsoir,

La Cellule "B2" du fichier "ST-TOTAL" contient la formule suivante:

='D:\[ST-01.xls]Resultat'!$C$5

Cette formule récupère la valeur de la cellule "C5", figurant dans la feuille "Resultat", du fichier "ST-01.xls".

Je souhaiterais remplacer "01" par la valeur figurant dans la cellule “A2”.

Je pensais pouvoir transformer la formule ainsi:

='D:\[ST-&A2.xls]Resultat'!$C$5

mais ceci ne fonctionne pas.

Y-a-t-il une solution?

Cordialement,

BChaly
 

Pièces jointes

  • ST_TOTAL.xls
    13.5 KB · Affichages: 35
  • ST-01.xls
    13.5 KB · Affichages: 40

BChaly

XLDnaute Occasionnel
Re : Insérer la valeur d’une cellule dans une formule

Bonsoir job75,

Merci pour votre suggestion.

Malheureusement, ayant un grand tableau dans "ST_TOTAL.xls" avec des valeurs qui changent souvent
dans la colonne "A", ainsi que de nombreux fichiers "ST-xx.xls", je souhaitais accéder à ceux-ci lorsqu'ils
sont fermés.

Donc, je vais continuer à modifier mes formules manuellement.

Merci encore pour votre réponse.

Cordialement,

BChaly
 

job75

XLDnaute Barbatruc
Re : Insérer la valeur d’une cellule dans une formule

Bonjour BChaly, le forum,

Il n'est pas du tout gênant, il me semble, d'ouvrir tous les fichiers sources.

Cela se fera automatiquement par cette macro, à placer dans le code de la feuille "Recap" du fichier "ST_TOTAL.xls" :

Code:
Private Sub Worksheet_Calculate()
Static flag As Boolean
Dim c As Range, Wb As Workbook, f$, chemin$
If flag Then Exit Sub
flag = True
On Error Resume Next
For Each c In [A:A].SpecialCells(xlCellTypeConstants)
  Set Wb = Nothing
  Set Wb = Workbooks("ST-" & c & ".xls")
  If Wb Is Nothing Then
    Application.ScreenUpdating = False
    f = c.Offset(, 1).Formula 'formule en colonne B
    chemin = Mid(f, InStr(f, "'") + 1, InStrRev(f, "\") - InStr(f, "'"))
    Workbooks.Open chemin & "ST-" & c & ".xls"
    ThisWorkbook.Activate
  End If
Next
flag = False
End Sub
ET en B2 et suivantes de la feuille "Recap" entrez cette formule :

Code:
=INDIRECT("'D:\[ST-"&A2&".xls]Resultat'!$C$5")
A+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Insérer la valeur d’une cellule dans une formule

Re,

Il est d'ailleurs plus simple d'écrire le chemin d'accès directement dans la macro :

Code:
Private Sub Worksheet_Calculate()
Static flag As Boolean
Dim chemin$, c As Range, wb As Workbook
If flag Then Exit Sub
flag = True
chemin = "D:\" 'à adapter éventuellement
On Error Resume Next
For Each c In [A:A].SpecialCells(xlCellTypeConstants)
  Set wb = Nothing
  Set wb = Workbooks("ST-" & c & ".xls")
  If wb Is Nothing Then
    Application.ScreenUpdating = False
    Workbooks.Open chemin & "ST-" & c & ".xls"
    ThisWorkbook.Activate
  End If
Next
flag = False
End Sub
Il suffira alors d'entrer en B2 de la feuille "Recap" :

Code:
=INDIRECT("'[ST-"&A2&".xls]Resultat'!$C$5")
Ne pas oublier les guillemets anglais '.

A+
 

Discussions similaires

Réponses
6
Affichages
247

Statistiques des forums

Discussions
312 685
Messages
2 090 947
Membres
104 705
dernier inscrit
Mike72