- Katılım
- 14 Ocak 2005
- Mesajlar
- 792
- Excel Vers. ve Dili
- Ofis 2010 2016
- Altın Üyelik Bitiş Tarihi
- 13/03/2022
Selam arkadaşlar,
Kod:
Dim a, i, satir, k, b(), z
Set s1 = Sheets("veri")
Set s2 = Sheets("SONUC")
'*******************************************
a = s1.Range("a2:v" & s1.[a65536].End(3).Row).Value 'veri sayfasındaki veriler a değişkenine tanımlanıyor.
ReDim b(1 To UBound(a, 1), 1 To 70) ' Dizinin boyutu belirleniyor. Not: Burada elle belirledim buranın normalde bilgisayara alınacak değerin sayısı hesaplattırılıp onun yazdırılması gerekiyor. Böyle ilerde sorun olabilir.
With CreateObject("Scripting.Dictionary") 'Dictionary nesnesi yaratılıyor.
.CompareMode = vbTextCompare
For i = 1 To UBound(a, 1)
If CDate(a(i, 2)) >= CDate(TextBox1) And CDate(a(i, 2)) <= CDate(TextBox2) Then 'Eğer a değişkeninin 2. verisi girilen tarihler arasında ise
If (a(i, 4)) = "ALIS" Then
If Not IsEmpty(a(i, 5)) Then ' a değişkeninin 7.elemanı boş değil ise yani sayı sutununda dğer var ise
z = a(i, 5) ' birleştirmedim & ":" & a(i, 7) ' a değişkeninin 5. ve 7. verilerini z'de birleştir.
If Not .exists(z) Then ' z değişkeni yok ise
satir = satir + 1
b(satir, 1) = satir ' Dizinin 1.elemanı Sıra No
b(satir, 2) = a(i, 5) 'Dizinin 2.elemanı mlz kodu
b(satir, 3) = a(i, 6) 'Dizinin 3.elemanı mlz adı
b(satir, 4) = a(i, 7) 'Dizinin 4.elemanı mlz brim
.Add z, satir
'if not .exixts(z) ninki
End If
b(.Item(z), 5) = b(.Item(z), 5) + a(i, 8) ' Dizinin 4.elemanına (a değişkeninin 8 verisi toplanıyor) yani gelen toplanıyor aynı ise
b(.Item(z), 6) = b(.Item(z), 6) + a(i, 10) ' Dizinin 5.elemanına (a değişkeninin 9 verisi toplanıyor) yani iade toplanıyor aynı ise
' b(.Item(z), 5) = b(.Item(z), 5) + a(i, 8) ' Dizinin 4.elemanına (a değişkeninin 8 verisi toplanıyor) yani gelen toplanıyor aynı ise
' b(.Item(z), 6) = b(.Item(z), 6) + a(i, 9) ' Dizinin 5.elemanına (a değiş
' İF NOT ISEMPTY(a(i, 5) inki
End If
End If
'TARİH İF
End If
Next
End With
'''' işte burada list box a aktarmadan b dizinin ikinci verisine göre çüçükten büyüğe sıralama yapmak istiyorum nasıl yapılır
If satir > 0 Then ListBox1.Column = Application.Transpose(b)
Kod:
End With
'''' işte burada list box a aktarmadan b dizinin ikinci verisine göre çüçükten büyüğe sıralama yapmak istiyorum nasıl yapılır
If satir > 0 Then ListBox1.Column = Application.Transpose(b)