Vermutlich so:
Anhand einer rein verbalen Beschreibung allerdings schwer zu sagen.
Option Explicit
Sub Test()
Dim wksA As Excel.Worksheet
Dim wksB As Excel.Worksheet
Dim rngKeyword As Excel.Range
Dim rngItemColumn As Excel.Range
Dim rngMatch As Excel.Range
Set wksA = Worksheets("Tabelle1")
Set wksB = Worksheets("Tabelle2")
'in Worksheet A, Zeile 1 nach Schluesselwort suchen
With wksA.Rows(1)
Set rngMatch = .Find("Schluesselwort", , xlValues, xlWhole, xlByRows, , False)
If rngMatch Is Nothing Then
Call MsgBox("Schluesselwort nicht gefunden.", vbExclamation)
Exit Sub
End If
End With
'-> Schluesselwort wurde gefunden
'unter dem gefundenen Schluesselwort
' stehen weitere Schluesselwörter.
'Wir referenzieren hier das erste davon.
Set rngKeyword = rngMatch.Offset(1)
'in Worksheet B, Zeile 1 nach der Spalte mit Bezeichner "ITEM" im Inhalt suchen
With wksB.Rows(1)
Set rngItemColumn = .Find("ITEM", , xlValues, xlPart, xlByRows, , False)
If rngItemColumn Is Nothing Then
Call MsgBox("Spalte 'ITEM' nicht gefunden.", vbExclamation)
Exit Sub
End If
End With
'-> Spalte mit Bezeichner "ITEM" im Inhalt wurde gefunden
Dim rngCell As Excel.Range
Do While rngKeyword.Value <> ""
'Schluesselwort in Worksheet B, Zeile 1 suchen
With wksB.Rows(1)
Set rngMatch = .Find(rngKeyword.Value, , xlValues, xlWhole, xlByRows, , False)
End With
If Not rngMatch Is Nothing Then
Set rngMatch = rngMatch.Offset(1)
Do While rngMatch.Value <> ""
If rngMatch.Value = "HIDE" Then
Set rngCell = rngMatch.Worksheet.Cells(rngMatch.Row, rngItemColumn.Column)
Call MsgBox(rngCell.Address & " = '" & rngCell.Value & "'", vbInformation)
End If
Set rngMatch = rngMatch.Offset(1)
Loop
End If
'nächstes Schlüsselwort in Worksheet A
Set rngKeyword = rngKeyword.Offset(1)
Loop
End Sub
|