Hallo Malte,
< da ein Cluster sich aus einer variablen Anzahl an Inhaltsstoffen zusammensetzt.
Wenn ich (im Nebel deiner Angaben) die Anzahl der Zellen in Spalte 2 des Clusterblattes als "einzige Variable" Bedingung für die Verkettung annehme
So quasi nur als Ansatz den Code etwa so umschreiben
Gruß H27
Option Explicit
Sub Test()
Dim myWs As Worksheet 'Cluster
Dim Z As Double 'Hintergrundfarbe
Dim J As Long 'Zeilenzähler
Dim i As Long 'Spalten in Tabelle 1
'
Rem - erscheint das variable Kriterium für die AND (aber ohne Leerräume) als
Dim R As Long 'die letzte Zeile in Spalte 2 im jeweiligen Clusterblatt
'
Dim Zeile() As Long 'Arrays nicht vorbestimmen
Dim stp() As Integer
'
Dim aZ As Long 'Zähler im Array
Dim IsIt As Boolean 'x wurde gefunden
'
For Each myWs In ActiveWorkbook.Sheets 'über alle
'
If InStr(myWs.Name, "Cluster") Then 'Treffer
'
Z = myWs.Cells(1, 4).Interior.Color 'Hintergrundfarbe immer in [D1]
R = myWs.Cells(Rows.Count, 2).End(xlUp).Row 'letzte Zeile der Spalte 2
ReDim Zeile(1 To R)
ReDim stp(1 To R)
'
For J = 1 To R ' solange Spalte mit Zellen gefüllt
If myWs.Cells(J, 2) <> 0 Then
stp(J) = myWs.Cells(J, 2).Value
'
Zeile(J) = Sheets("Tabelle1").Columns("A:A").Find(What:=stp(J), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
'
End If
Next J
'
For i = 2 To 10 'Anzahl der Spalten, die durchsucht werden
For aZ = 3 To UBound(Zeile) 'beginnt wohl immer mit Cells(Zeile(3), i)
IsIt = True
If Sheets("Tabelle1").Cells(Zeile(aZ), i).Value = "x" Then
IsIt = IsIt And True
Else
IsIt = IsIt And False
End If
Next aZ
If IsIt Then
Range(Sheets("Tabelle1").Cells(Zeile(1), i), _
Sheets("Tabelle1").Cells(Zeile(2) - 1, i)).Select
Sheets("Tabelle1").Cells(Zeile(2) - 1, i).Activate
'
With Selection.Interior
.Color = Z
End With
End If
'
Next i
'
End If
'
Next myWs
'
End Sub
|