Gegeben sind drei benannte Bereiche:
Bereich "Auswahl_1" von A2 bis J2,
Bereich "Auswahl_2" von A4 bis J4,
Bereich "Auswahl_3" von A6 bis J6.
Dieses Makro zur Vorbereitung, das die Bereiche erst mal festlegt. Das ist natürlich zuerst auszuführen.
Sub Vorbereitung()
With ActiveWorkbook.Names
.Add "Auswahl_1", "=Tabelle1!R2C1:R2C10"
.Add "Auswahl_2", "=Tabelle1!R4C1:R4C10"
.Add "Auswahl_3", "=Tabelle1!R6C1:R6C10"
End With
End Sub (Keine Ahnung, warum das nicht im Makro-Stil dargestellt wird. Sorry.)
Das gesuchte Makro soll prüfen, ob die beschriebene Zelle in einem dieser Bereiche steht, der mit "Auswahl_" beginnt und drunter den Namen des Bereiches schreiben.
Sicher, eine Abfrage mit jedem in Frage kommenden Bereich funktioniert wie im Beispiel unten. Aber wie kann man das vereinfachen? Immerhin sind die Folgezeilen ja gleich, abgesehen von der Bestimmung des Bereichnamens.
Hier meine "Langversion", von der ich wegkommen will.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rZelle As Range
Dim sName As String
For Each rZelle In Target
If Not Application.Intersect(rZelle, Range("Auswahl_1")) Is Nothing Then
sName = "Auswahl_"
rZelle.Offset(1, 0).Value = sName
ElseIf Not Application.Intersect(rZelle, Range("Auswahl_2")) Is Nothing Then
sName = "Auswahl_2"
rZelle.Offset(1, 0).Value = sName
ElseIf Not Application.Intersect(rZelle, Range("Auswahl_3")) Is Nothing Then
sName = "Auswahl_3"
rZelle.Offset(1, 0).Value = sName
End If
Next rZelle
End Sub
Das Ganze steht im Tabelle1-Modul. LG, Barbara