ich habe ein Makro gebaut, welches gut funktioniert. Dabei werden aber über eine Case-Anweisung verschiedene Werte verglichen, z.B.:
Select Case Range("B" & i).Value
'Materialnummer in RM-Liste
Case "RM628797", "RM628831", "RM628847", "RM628860", "RM628861", "RM628862", _
"RM630448", "RM632167"
Range("E" & i).Value = "RM"
'Materialnummer in SF-Liste
Case "1000102342", "1000102344", "1000103661", "1000103662", "1000103663", "1000103668", _
"1000103671", "1000104500", "1000104501", "1000104502", "1000104529"
Range("E" & i).Value = "SF"
'Materialnummer nicht in Listen
Case Else: Rows(i).Delete Shift:=xlUp
End Select
(Vereinfachte Listen, in meinem Makro sind es viel mehr Werte).
Jetzt muss ich ja jedesmal wenn ein Wert hinzukommt das Makro entsprechend ändern.
Daher meine Frage:
Kann ich (wenn ja, wie?) die Werte, welche die Case-Anweisung prüft aus einem Tabellenblatt-Bereich auslesen?
Z.b. schreibe ich dann die gültigen Werte für die erste Case-Prüfung in "Tabelle 3" Zelle A1 bis A119 (da stehen dann die RM-Werte) und die Werte für die zweite Prüfung in "Tabelle 3" B1 bis B77 (da stehen dann die 100... SF-Werte).
Also dass die Case Anweisung sozusagen das folgende macht
'Case Werte aus Tabelle3.A1:A119
Range("E" & i).Value = "RM"
Case Werte aus Tabelle3.B1:B77
Range("E" & i).Value = "SF"
Nur das eben in VBA korrekt formuliert :-)
Vielen Dank für Eure Hilfe.