Hallo Tobi,
hier mein Vorschlag:
Je nachdem in welche der beiden Zellen man die Eingabe macht, werden per Makro die Formeln in den 3 anderen Zellen geändert.
Falls du mit Blattschutz arbeitest, dann muss du zusätzlich am Anfang den Blattschutz aufheben und am Ende wieder einschalten.
Das Aus-/Einschalten der Events, verhindert, dass bei Änderung der Eingabe Formel in der jeweils anderen Eingabezelle dieses Makro nochmals ausgeführt wird.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim PfadPreis As String, DateiPreis As String, TabPreis As String
PfadPreis = ThisWorkbook.Path 'Anpassen, wenn Dateien nicht im gleichen Verzeichnis
DateiPreis = "Preis.xls"
TabPreis = "Tabelle1"
Application.EnableEvents = False
Select Case Target.Address
Case "$D$4" 'Eingabe Alte Artikelnummer
'Formel neu Nummer
Target.Offset(0, 1).FormulaR1C1 = _
"=IF(ISBLANK(RC[-1]),"""",IF(ISNA(VLOOKUP(RC[-1],'" & PfadPreis & "\[" & DateiPreis _
& "]" & TabPreis & "'!C1:C4,3,0)),""nicht vorhanden"",VLOOKUP(RC[-1],'" _
& PfadPreis & "\[" & DateiPreis & "]" & TabPreis & "'!C1:C4,2,0)))"
'Formel Artikel-Beschreibung
Target.Offset(0, 2).FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-2],'" & PfadPreis & "\[" & DateiPreis & "]" & TabPreis _
& "'!C1:C4,3,0)),""nicht vorhanden"",VLOOKUP(RC[-2],'" & PfadPreis _
& "\[" & DateiPreis & "]" & TabPreis & "'!C1:C4,3,0))"
'Formel Preis
Target.Offset(0, 3).FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-3],'" & PfadPreis & "\[" & DateiPreis & "]" & TabPreis _
& "'!C1:C4,3,0)),""nicht vorhanden"",VLOOKUP(RC[-3],'" & PfadPreis _
& "\[" & DateiPreis & "]" & TabPreis & "'!C1:C4,4,0))"
Case "$E$4" 'Eingabe Neue Artikelnummer
'Formel alte Nummer
Target.Offset(0, -1).FormulaR1C1 = _
"=IF(ISERROR(MATCH(RC[1],'" & PfadPreis & "\[" & DateiPreis & "]" & TabPreis _
& "'!C2,0)),""nicht vorhanden"",INDEX('" & PfadPreis & "\[" & DateiPreis & "]" _
& TabPreis & "'!C1,MATCH(RC[1],'" & PfadPreis & "\[" & DateiPreis & "]" _
& TabPreis & "'!C2,0),1))"
'Formel Artikel-Beschreibung
Target.Offset(0, 1).FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-1],'" & PfadPreis & "\[" & DateiPreis & "]" & TabPreis _
& "'!C2:C4,2,0)),""Nicht vorhanden"",VLOOKUP(RC[-1],'" & PfadPreis & "\[" _
& DateiPreis & "]" & TabPreis & "'!C2:C4,2,0))"
'Formel Preis
Target.Offset(0, 2).FormulaR1C1 = _
"=IF(ISNA(VLOOKUP(RC[-2],'" & PfadPreis & "\[" & DateiPreis & "]" & TabPreis _
& "'!C2:C4,2,0)),""Nicht vorhanden"",VLOOKUP(RC[-2],'" & PfadPreis & "\[" _
& DateiPreis & "]" & TabPreis & "'!C2:C4,3,0))"
Case Else
'do nothing
End Select
Application.EnableEvents = True
End Sub