Clever-Excel-Forum

Normale Version: Text in Verknüpfung umwandeln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Vielleicht kann mir jemand weiterhelfen. Ich möchte gerne in Excel per VBA Makro einen Text in eine Formel umwandeln und zwar sieht die Ausgangssituation so aus:

Ich habe in einer Excel Tabelle externe Verknüpfungen zu einer Quelldatei, bei denen der Pfad prinzipiell so aufgebaut ist =C:\Jahr\Periode\Gruppe\Quelldatei.xlsx
Da "Jahr" und "Periode" und teilweise auch "Gruppe" und "Quelldatei" variabel sind, müssen die Verknüpfungen jedes Monat neu angepasst werden. Mit Suchen/Ersetzen komme ich aber nicht weit, da Excel nur einen Parameter auf einmal ersetzen kann und nicht "Jahr", "Periode", "Gruppe" und "Quelldatei" gleichzeitig.

Ich habe nun versucht die externe Verknüpfung als zusammengesetzten Text (mit &-Funktion) in eine eigene Zelle schreiben zu lassen (also zb ='C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos1) und diesen dann als Wert in die jeweilige Zelle der Datentabelle zu kopieren. Leider bleibt dann aber der Text stehen und die Formel wird nicht berechnet.

Gibt es eine Möglichkeit, wie man per Makro den Text in die Formel umwandeln kann? Also es soll dann wirklich die Verknüpfung zb so in der Zelle stehen:
='C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos1+'C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos2

Das hab ich schon probiert:
  • Ersetzen "=" durch "=" würde den Text in die Formel umwandeln, allerdings scheitert das bei Formeln wie =Summe('C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos1+'C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos2) weil VBA nix mit deutschen Funktionsbezeichnungen anfangen kann.
  • eine Funktion, die den Wert der Formel gleich vom Text berechnet - ist leider nicht geeignet, da dann nicht ='C:\Jahr1\Periode1\Gruppe1\Quelldatei1.xlsx'!Pos1 in der jeweiligen Zelle steht sondern eine andere Funktion.
Hat jemand eine Idee?

Vielen Dank für euren Input!
Alex
ändere nicht in der Datei.

Mach eine fixe Queldatei, z.B  C:\Quelldatei.xlsx

Wenn's eine neue Periode gibt:

Code:
Sub M_snb()
  copyfile "C:\Jahr\Periode\Gruppe\Quelldatei.xlsx", "C:\Quelldatei.xlsx"
End Sub
Hallo,

Zitat:weil VBA nix mit deutschen Funktionsbezeichnungen anfangen kann.


Unsinn. Dafür gibt es die FormulaLocal-Eigenschaft.
z.B. ActiveCell.FormulaLocal = ActiveCell.Text

Gruß
Rudi
Zitat:Mach eine fixe Queldatei, z.B  C:\Quelldatei.xlsx

Das wäre fein, geht allerdings leider nicht... jede Quelldatei liegt in einem eigenen Ordner.

Zitat:Unsinn. Dafür gibt es die FormulaLocal-Eigenschaft.
Ist kein Unsinn, wenn es um Suchen/Ersetzen geht... VBA erkennt =Summe() dann nicht als Formel.
Hallo,

mal ganz einfach:
Zitat:Sub formeln()
  Dim i As Long
    For i = 8 To 10
      Cells(i, 2).FormulaLocal = Cells(i + 7, 2).Text
      Cells(i, 3).FormulaLocal = Cells(i + 7, 3).Text
    Next i
End Sub
Gruß
Rudi
Hallo,

erstell dir Namen 

Verk1 = "C:\Quelldatei.xlsx..."    und  im  VBA -->  Range("Verk1").Value
Code:
Das wäre fein, geht allerdings leider nicht... jede Quelldatei liegt in einem eigenen Ordner.

Bitte lese mal die Vorschläge etwas genauer !!!
(08.05.2018, 14:03)snb schrieb: [ -> ]
Code:
Das wäre fein, geht allerdings leider nicht... jede Quelldatei liegt in einem eigenen Ordner.

Bitte lese mal die Vorschläge etwas genauer !!!

sorry.. meinte, die quelldateien müssen in einem eigenen ordner liegen bleiben zwecks nachvollziehbarkeit und aufrechterhaltung der ordnerstrucktur.
Das ändert sich in der Vorschlag gar nicht. Bitte lesen und testen.