Yapmışken birde collection ilede yapmış bulunayım örnek açısından.
Dim col As New Collection
Function Kolleksiyon_Varmi(ByVal deger As String) As Boolean
On Error GoTo hata
col.Add deger, deger
Kolleksiyon_Varmi = False
Exit Function
hata:
Kolleksiyon_Varmi = True
End Function
Private Sub CommandButton1_Click()
Dim say As Long
Dim i As Long, sonLitview As Long
Dim kriter, arr(), col2 As New Collection
With ThisWorkbook.Sheets("Sheet1")
.Range("A12:F" & Rows.Count).ClearContents
With Me.ListView1
sonLitview = .ListItems.Count
If sonLitview = 0 Then GoTo var
ReDim arr(1 To sonLitview, 1 To 6)
For i = 1 To sonLitview
kriter = .ListItems(i).ListSubItems(1)
If Kolleksiyon_Varmi(kriter) = False Then
say = say + 1
col2.Add say, kriter
arr(say, 1) = .ListItems(i)
arr(say, 2) = .ListItems(i).ListSubItems(1)
arr(say, 3) = .ListItems(i).ListSubItems(2)
arr(say, 4) = .ListItems(i).ListSubItems(3)
End If
arr(col2(kriter), 5) = arr(col2(kriter), 5) + .ListItems(i).ListSubItems(4) + 0
arr(col2(kriter), 6) = arr(col2(kriter), 6) + .ListItems(i).ListSubItems(5) + 0
Next
End With
If say > 0 Then .Range("A12").Resize(say, UBound(arr, 2)).Value = arr
End With
var:
On Error Resume Next
MsgBox "bitti"
Set col = Nothing: Set col2 = Nothing
Erase arr
End Sub