Forum içerisinde yaptığım aramada bazı uygulamalar buldum ve bunların içerisinde aşağıdaki kodlar benim istediğim sayma işlemini yapıyor ancak elimdeki veri miktarı çok fazla ve bu kodlar ile işlem önce sayıp sonra tek olanları ListBox içerisine aldığı için çok uzun sürüyor.
Bunun yerine ListBox içerisine açılışta UserForm_Initialize ile verileri zaten alıyoruz. Alınan bu verilerin içerisinde tek olanları saydırsak ve sadece sayılan verileri label yardımı ile görüntülesek. Bana gerekli olan tek olanların sayısı ayrıca tek olanların görüntülenmesine gerek yok tüm listemin görüntülenmesi yeter yani 3500 (hergün artıyor) veri içerisinde 1200 civarında tek olan var ve ben bu tek olan sayısını Formu açtığımda görüntülemek istiyorum tabii beni kasmadan
Bunun yerine ListBox içerisine açılışta UserForm_Initialize ile verileri zaten alıyoruz. Alınan bu verilerin içerisinde tek olanları saydırsak ve sadece sayılan verileri label yardımı ile görüntülesek. Bana gerekli olan tek olanların sayısı ayrıca tek olanların görüntülenmesine gerek yok tüm listemin görüntülenmesi yeter yani 3500 (hergün artıyor) veri içerisinde 1200 civarında tek olan var ve ben bu tek olan sayısını Formu açtığımda görüntülemek istiyorum tabii beni kasmadan
Kod:
Private Sub CommandButton1_Click()
Dim AllCells As Range, Cell As Range
Dim ciftdegil As New Collection
Dim i As Integer, j As Integer
Dim Swap1, Swap2, Item
Set AllCells = Range("E1:E65536")
On Error Resume Next
For Each Cell In AllCells
ciftdegil.Add Cell.Value, CStr(Cell.Value)
Next Cell
On Error GoTo 0
With UserForm1
.Label1.Caption = "Benzersiz Öğe Sayısı : " & ciftdegil.Count
End With
For i = 1 To ciftdegil.Count - 1
For j = i + 1 To ciftdegil.Count
If ciftdegil(i) > ciftdegil(j) Then
Swap1 = ciftdegil(i)
Swap2 = ciftdegil(j)
ciftdegil.Add Swap1, before:=j
ciftdegil.Add Swap2, before:=i
ciftdegil.Remove i + 1
ciftdegil.Remove j + 1
End If
Next j
Next i
For Each Item In ciftdegil
UserForm1.ListBox1.AddItem Item
Next Item
UserForm1.Show
End Sub