Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Formel in VBA einfügen
11.07.2022 12:54:07
Basti
Hallo Zusammen,
ich würde gerne folgende Formel in ein Makro einfügen.
Die beiden Dateien wurden jeweils als "Master" und "Content" bereits im Vorfeld definiert/deklariert.
Die Formel soll im Master eingefügt werden und hat einen Bezug zum Content. (siehe 5 Zeile)
Leider funktioniert dies so nicht und es öffnet sich ein Ordner-Fenster:
Master.Activate
Sheets("SheetMaster1").Activate
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(COUNTIF(R1C[-2]:R[-1]C[-2],RC[-2])>0,"""",VLOOKUP(RC[-2],'[Content]SheetContent1'!R2C2:R500C10,8,FALSE))"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E301"), Type:=xlFillDefault
Range("E2:E301").Select
Weiß jemand, wie die Formel die deklarierte Datei "Content" erfasst?
Danke und viele Grüße
Basti

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in VBA einfügen
11.07.2022 13:05:38
Daniel
Hi
wenn sich beim Einfügen einer Formel ein Fenster zur Dateiauswahl öffnet, dann existiert ein externen Zellbezug in der Formel nicht.
dh irgendwo hier '[Content]SheetContent1'! muss was falsch geschrieben sein.
Fehlt da bei [content] nicht die Dateierweiterung (.xlsx, .xlsm, .xlsb)?
Wenn du das so eingibst, muss die Datei content auch geöffnet sein. Ist sie geschlossen, dann müsstest du noch den Dateipfad zwischen ' und [ angeben.
Gruß Daniel
AW: Formel in VBA einfügen
11.07.2022 13:48:48
Basti
Hallo Daniel,
danke für die Rückmeldung. Ist das so korrekt?:
Master.Activate
Sheets("SheetMaster1").Activate
Range("E2").Select
ActiveCell.FormulaR1C1 = _
"=IF(COUNTIF(R1C[-2]:R[-1]C[-2],RC[-2])>0,"""",VLOOKUP(RC[-2],Content.xlsm SheetContent1'!R2C2:R500C10,8,FALSE))"
Range("E2").Select
Selection.AutoFill Destination:=Range("E2:E301"), Type:=xlFillDefault
Range("E2:E301").Select
Anzeige
AW: Formel in VBA einfügen
11.07.2022 14:30:12
Daniel
probiers doch einfach aus.
ich bin nicht dein Testcenter.
wer hat dir gesagt, dass man den Dateinamen nicht mehr in "[ ]" setzen muss?
der Code ist weiterhin

'Laufwerk:\Ordnerstrukur\[Dateiname.xlsx]Tabellenblattname'!Zellbezug
wobei Laufwerk und Ordnerstruktur weggelassen werden können, wenn die Datei geöffnet ist.
warum machst du jetzt dinge falsch, die du vorher richtig gemacht hast?
bei Formeln in VBA braucht man auch nicht raten.
man erstellt die Formel von Hand und wenn sie funktioniert, zeichnet man das Einfügen mit dem Recorder auf.
oder man lässt sich die Formel im Direktfenster mit
?Replace(Selection.FormulaR1C1, """", """""")
anzeigen. Die Formel doppelt dir gleich die Anführungszeichen, so dass du das Ergebnis direkt in den Code kopieren kannst.
Gruß Daniel
Anzeige
AW: Formel in VBA einfügen
11.07.2022 14:38:08
Basti
Hallo Daniel,
Content ist eine im Vorfeld definierte/deklarierte Datei. (Sie hat in echt einen anderen Dateinamen)
Wenn ich die Formel in die Zelle einfügen möchte erkennt er die Datei Content.xlsm nicht, da Sie nur in dem Makro existiert. In echt hat die Datei einen anderen Namen.
Funktioniert sowas überhaupt ? Die Formel überträgt doch dann die Bezeichnung Content.xlsm - was ja so nicht stimmt, da die Datei einen anderen Namen besitzt.
Danke udn Viele Grüße
Basti
AW: Formel in VBA einfügen
11.07.2022 14:47:55
Daniel
einen externen Zellbezug kannst du nur auf eine real existierende Datei erstellen.
Entweder ist die Datei im aktuellen Excel geöffnet, dann reicht:

'[Dateiname]Tabellenblatt'!Zellbezug
oder sie ist nicht geöffnet, dann brauchst du zum Einfügen der Formel

'Laufwerk:\Ordner\[Dateiname]Tabellenblatt'!Zellbezug
dabei müssen die realen Dateinamen und Ordnerbezeichnungen verwendet werden.
Wenn du diese in Variablen hast, musst dann musst du eben die Variablenwerte in die Formel einbringen.
wenn du die datei beispielsweise in einer Workbook-Variable hinterlegt hast, musst du das zu zusammensetzen:

dim content as workbook
set content = workbooks.open(...)
... .FormulaR1C1 = "=...;'[" & content.name & "]TabelleX'!A1;...
Gruß Daniel
Anzeige
AW: Formel in VBA einfügen
11.07.2022 15:00:38
Basti
Hallo Daniel,
vielen Dank!!!
Genau sowas habe ich gesucht: '[" & content.name & "]
Jetzt funktioniert es : - )
Viele Grüße und noch einmal vielen Dank
Basti

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige