- Katılım
- 5 Ocak 2009
- Mesajlar
- 1,586
- Excel Vers. ve Dili
- 2003 Türkçe
Selam,
Sayın Evren Gizlen Hocamız'dan istifade ile aşağıdaki kodları kullanıyorum.
c1 sayfasının A3 hücresinden itibaren sıralama yapıyor.
Ancak ben excel sayfasına değil, Userform1'deki listviewde sıralanmasını istiyorum.
mesela ben myarr(1, n) yerine
UserForm1.ListView1.ListItems.Add
UserForm1.ListView1.ListItems
.SubItems (2)
şeklinde yazdım ancak, c1.Range("A3").Resize(n, 5) olan kısmı listview kodlarına çeviremedim.
Yardımcı olabilirseniz çok sevinirim.
İyi çalışmalar
Sayın Evren Gizlen Hocamız'dan istifade ile aşağıdaki kodları kullanıyorum.
c1 sayfasının A3 hücresinden itibaren sıralama yapıyor.
Ancak ben excel sayfasına değil, Userform1'deki listviewde sıralanmasını istiyorum.
Kod:
Sub ÇEŞİT_NORMAL_SIRALAMA_VBA() 'NORMAL SIRALAMA
Dim c1, insört As Worksheet, son2 As Long, z As Object, n As Long
Dim liste(), myarr(), i, j As Long, deg As String
Set c1 = Sheets("Çeşitler-1")
Set insört = Sheets("insört")
son2 = insört.Cells(65536, "G").End(xlUp).Row
c1.Range("A3:K65536").ClearContents
If son2 < 2 Then Exit Sub
liste = insört.Range("G2:L" & son2).Value
ReDim myarr(1 To 5, 1 To 65536)
Set z = CreateObject("Scripting.Dictionary")
For i = 1 To UBound(liste, 1)
deg = liste(i, 1) & "-" & liste(i, 3) & "-" & liste(i, 4)
If Not z.exists(deg) Then
n = n + 1
z.Add deg, n
myarr(1, n) = liste(i, 1)
myarr(2, n) = liste(i, 3)
myarr(3, n) = liste(i, 4)
End If
myarr(4, z.Item(deg)) = myarr(4, z.Item(deg)) + liste(i, 6)
myarr(5, z.Item(deg)) = myarr(5, z.Item(deg)) + 1
Next i
Application.ScreenUpdating = False
c1.Range("A3").Resize(n, 5) = Application.Transpose(myarr)
Application.ScreenUpdating = True
MsgBox "Çeşitler-1 ve Slide Arıza Dağılımları (NORMAL) listelenmiştir.", vbInformation
End Sub
UserForm1.ListView1.ListItems.Add
UserForm1.ListView1.ListItems
şeklinde yazdım ancak, c1.Range("A3").Resize(n, 5) olan kısmı listview kodlarına çeviremedim.
Yardımcı olabilirseniz çok sevinirim.
İyi çalışmalar
Son düzenleme:
