AW: aus Union-Range einzelne Werte auslesen
31.10.2014 13:19:09
fcs
Hallo Peter,
ich würde die Auswertung komplett über Arrays machen.
Gruß
Franz
Code-Beispiel
Sub Auswertung()
Dim wksData As Worksheet
Dim arrData, arrErgebnis()
Dim Zeile_L As Long, Zeile_D As Long, Zeile_E As Long
Dim bolTreffer As Boolean, intTreffer As Integer
Set wksData = ActiveSheet
With wksData
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
arrData = .Range(.Cells(2, 1), .Cells(Zeile_L, 54))
End With
intTreffer = 0
'Treffer-Zeilen markieren
For Zeile_D = LBound(arrData, 1) To UBound(arrData, 1)
bolTreffer = True
If Kriterium1 = True Then
If Kriterium2 = True Then
If Kriterium3 = True Then
If Kriterium4 = True Then
If Kriterium5 = True Then
If Kriterium6 = True Then
intTreffer = intTreffer + 1
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
Else
bolTreffer = False
End If
arrData(Zeile_D, 54) = bolTreffer
Next
'Trefferzeilen auslesen
If intTreffer > 0 Then
ReDim arrErgebnis(1 To intTreffer, 1 To 6)
Zeile_E = 0
For Zeile_D = LBound(arrData, 1) To UBound(arrData, 1)
If arrData(Zeile_D, 54) = True Then
Zeile_E = Zeile_E + 1
arrErgebnis(Zeile_E, 1) = arrData(Zeile_D, 1)
arrErgebnis(Zeile_E, 2) = arrData(Zeile_D, 2)
arrErgebnis(Zeile_E, 3) = arrData(Zeile_D, 7)
arrErgebnis(Zeile_E, 4) = arrData(Zeile_D, 12)
arrErgebnis(Zeile_E, 5) = arrData(Zeile_D, 22)
arrErgebnis(Zeile_E, 6) = arrData(Zeile_D, 34)
End If
Next
End If
Erase arrData
End Sub