Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formel aus einzelnen Zellen zusammensetzen und per VBA in eine leere Zelle schnreiben
#1
Hallo zusammen,
ich stehe vor einem Problem mit einer in VBA zusammengesetzten Formel, die ich in eine leere Zelle schreiben möchte.
Ich habe mich jetzt im Internet lange genug versucht schlau zu machen, komme aber nicht weiter. Daher wende ich mich an Euch:

Ausganssituation:
Pfad steht in Zelle A3, Dateiname steht in Zelle B3. Jede dieser Tabellen sind identisch aufgebaut.
Ich möchte aus jeder dieser 2.626 Tabellen eine bestimmte Information (Zahl) herauslesen, die immer im Tabellenblatt "ETK!$I$5" steht und neben der Quelle in Spalte G eingetragen wird.

Die Ausgangssituation ist also folgende, siehe nachfolgendes Bild. In Spalte E habe ich schon mal per Formel den absoluten Bezug abgebildet. Hier steht bezogen auf die jeweilige Zeile die Formel:
=WENN(_2017[@[Folder Path]]="";"";"='"&_2017[@[Folder Path]]&"["&_2017[@Name]&"]ETK'!$I$5")

Leider lässt sich diese Formel nicht in eine Formel umwandeln, sondern bleibt als Text stehen. Alle im Internet vorgeschlagenen Versuche, diesen Text als Formel aufzulösen sind fehl geschlagen.



[
Bild bitte so als Datei hochladen: Klick mich!
]

Jetzt versuche ich, per VBA den Formelausdruck zusammen zu setzen, bekomme jedoch als Ergebnis einen unsinnigen Ausdruck.

unten stehendes Makro schreibt mir eine Formel, die im Ergebnis in die Zellen untereinander schreibt:
='[A3[B3]ETK]A3[B3]ETK'!$I$5

ich hätte aber gerne:
='X:\Ankdg\Plan\2017\[148530.xlsm]ETK'!$I$5



Public Sub FormelnSchreiben1()
Dim I As Integer
Zeile = Range("E1")

    For I = 3 To Zeile
        Pfad = "A" & I
        Name = "B" & I
        ActiveSheet.Cells(I, "G").FormulaLocal = "='" & Pfad & "[" & Name & "]ETK'!$I$5"
    Next I
End Sub


Kann mir hier jemand weiterhelfen? Was mache ich hier falsch?

Vielen Dank und viele Grüße an alle da draußen!
Viele Grüße
Rumo0815
------------------------
Bei Licht betrachtet ist der Leithammel auch nur ein Schaf.  19
Antworten Top
#2
Hi,

Formel wird als Text angezeigt hatten wir vor wenigen Tagen auch hier im Forum
guggschdu
http://www.clever-excel-forum.de/Thread-...#pid121149
Antworten Top
#3
Hallo,

Zitat:Leider lässt sich diese Formel nicht in eine Formel umwandeln, sondern bleibt als Text stehen.

schau mal ob die Spalte als Text formatiert ist .

Wenn ja --> Formel anzeigen , kopieren , aus Zelle löschen --> Spalte  als  Standard formatieren -> Formel reinkopieren

Wenn nein --> schau mal unter Formeln -> Berechnungsoptionen - ob das auf  manuell steht
Antworten Top
#4
Moin!
Und wenn das alles nichts hilft:
Deine .xlsx wäre sinnvoller als ein nichtssagender Screenshot.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#5
Ach so:
Dass Pfad = "A" & I "A3" ergibt, sollte ja logisch sein!
Du meinst aber sicher
Pfad = Range("A" & I)
oder auch
Pfad = Cells(I, 1)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Moin Rumo

Alle Beantworter haben natürlich auch recht, ne Datei is viel besser wie ein Bild, siehe auch Link in meiner Signatur

deine Formel wird richtig zusammengebaut, wenn Pfad und Name richtig wären:
Probiers mal so:
Code:
Public Sub FormelnSchreiben2()
Dim I As Integer
Zeile = Range("E1")

   For I = 3 To Zeile
       Pfad = ActiveSheet.Range("A" & I)
       Name = ActiveSheet.Range("B" & I)
       ActiveSheet.Cells(I, "G").FormulaLocal = "='" & Pfad & "[" & Name & "]ETK'!$I$5"
   Next I
End Sub
Wenn du deinen Code mal schrittweise durchlaufen [F8] lässt, bei geöffnetem Lokalfenster, wird er dir weder bei Pfad noch bei Name die von dir gewünschten Werte anzeigen
Antworten Top
#7
Oder:


Code:
Sub M_snb()
   [E3:E9].numberformat="General"  
   [E3:E9] = ["='"&A3:A9&"["&B3:B9&"]ETK'!$E$5"]
End Sub
Zum übersetzen von Excel Formeln:

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


Gehe zu:


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