Text in Verknüpfung umwandeln
#1
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


Angehängte Dateien
.xlsx   TEST Werte in Formeln umwandeln.xlsx (Größe: 16,1 KB / Downloads: 5)
Top
#2
ä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
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#3
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
Top
#4
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.
Top
#5
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
Top
#6
Hallo,

erstell dir Namen 

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

Bitte lese mal die Vorschläge etwas genauer !!!
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#8
(08.05.2018, 15: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.
Top
#9
Das ändert sich in der Vorschlag gar nicht. Bitte lesen und testen.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste