Mise à jour formule via VBA

Bonjour le forum,

J'ai un soucis de mise à jour de fichier source.

Je voudrais créer un bouton capable de changer automatiquement le nom d'un fichier dans une formule.

Ci joint un exemple simplifié.

D'avance merci pour votre précieuse aide.

Jules

Bonjour,

Pourquoi le faire par macro ? Tu peux utiliser INDIRECT tant que la source se situe dans un onglet du même fichier.

Justement l'exemple est simplifié, le fichier sourcxe est un autre fichier donc indirect ne fonctionne pas

ok

donc voici un exemple avec fichier séparé

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("SEMAINE")) Is Nothing Then
    For Each c In [adresses]
        c.Offset(3, 0).FormulaLocal = "='" & [B1] & "[" & [B2] & "]" & [B3] & "'!" & c.Value
    Next
    Set c = Range("K4")
    c.Offset(3, 0).FormulaLocal = "=SOMME('" & [B1] & "[" & [B2] & "]" & [B3] & "'!" & c.Value & ")"
End If
End Sub

Il faut que tu définisses le fichier mais aussi le chemin, si idem fichier appelant :

=GAUCHE(CELLULE("filename";A1);CHERCHE("[";CELLULE("filename";A1))-1)

Définis aussi l'onglet et les cellules si nécessaire. Ici tout est en variable dans la feuille.

Je vais refaire un template plus universel ...

5source.xlsx (44.44 Ko)

Prends la feuil2, c'est plus générique

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("B1:B4")) Is Nothing Then Exit Sub
Range("B5").FormulaLocal = "='" & [B1] & "[" & [B2] & "]" & [B3] & "'!" & [B4]
End Sub

B1 : chemin

B2 : fichier

B3 : onglet

B4 : adresse

B5 : résultat

5source.xlsx (44.44 Ko)

Merci beaucoup

de rien

Rechercher des sujets similaires à "mise jour formule via vba"