166 Aufrufe
Gefragt in Tabellenkalkulation von vernichter Mitglied (261 Punkte)

Hallo zusammen,

ich möchte gerne mit VBA folgende Formel in eine Zelle schreiben.

=WENNFEHLER(SVERWEIS($A18*1;'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Prognose_2021_KW_42.xlsb]Tabelle1'!$G$29:$BP$800;VERGLEICH(F$1;'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Prognose_2021_KW_42.xlsb]Tabelle1'!$G$28:$BP$28;0);0);0)

ich hab dann einfach den Makrorecorder gestartet dann Enter und raus kam das:

Sub Makro1()

        ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC1*1,'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Prognose_2021_KW_42.xlsb]Tabelle1'!R29C7:R800C68,MATCH(R1C[-1],'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Prognose_2021_KW_42.xlsb]Tabelle1'!R28C7:R28C68,0),0),0)"

End Sub

Dieser Dateiname: Prognose_2021_KW_42.xlsb ändert sich aber ständig weshalb ich dachte ich hol mir den Dateinamen aus einer Zelle und ändere entsprechend das Makro wie folgt um:

Sub Makro1()

Dim Datei As String
Datei = Worksheets("Prognose").Range("B5")

        ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC1*1,'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Datei.xlsb]Tabelle1'!R29C7:R800C68,MATCH(R1C[-1],'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[Datei.xlsb]Tabelle1'!R28C7:R28C68,0),0),0)"

End Sub

Leider funktioniert das nicht und dieses Workbook Suchfeld geht auf wo ich dann die Datei auswählen soll.

Könnte mir bitte jemand einen Tipp geben wie ich das umsetzen kann.

Vielen Dank

Gruß energun

3 Antworten

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)

Hallo ich noch einmal Entschuldigung wegen Doppelpost,

ich hab es jetzt gleube hinbekommen und zwar so:

Sub Makro1()

Dim Datei As String
Datei = Worksheets("Prognose").Range("B5")

Cells(18, 9).Select

        ActiveCell.FormulaR1C1 = _
        "=IFERROR(VLOOKUP(RC1*1,'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[" & Datei & ".xlsb]Tabelle1'!R29C7:R800C68,MATCH(R1C[-1],'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[" & Datei & ".xlsb]Tabelle1'!R28C7:R28C68,0),0),0)"
End Sub

Ist das so richtig oder geht das besser?

Vielen Dank

Gruß energun

+1 Punkt
Beantwortet von m-o Profi (22.8k Punkte)
ausgewählt von vernichter
 
Beste Antwort

Hallo,

das sollte so eigentlich funktionieren. Aber auf Select kannst du meistens verzichten:

 Sub Makro1()

    Dim Datei As String
    Datei = Worksheets("Prognose").Range("B5")
    Cells(18, 9).FormulaR1C1 = "=IFERROR(VLOOKUP(RC1*1,'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[" & Datei & ".xlsb]Tabelle1'!R29C7:R800C68,MATCH(R1C[-1],'C:\flw\btl-wfl\wfl2all\05-Prognose-Bestellung\[" & Datei & ".xlsb]Tabelle1'!R28C7:R28C68,0),0),0)"
    
    End Sub

Gruß

M.O.

0 Punkte
Beantwortet von vernichter Mitglied (261 Punkte)
Hallo M.O.

Vielen Dank

Gruß

energun
...