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

  • Initiateur de la discussion Initiateur de la discussion BChaly
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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:
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour