• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Birden Fazla Sütuna Göre Sıralama Yardım!

Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
Sevgili arkadaşlar, ekteki örnek çalışmamda 12 adet sütuna göre sıralama yapmam lazım, bu konuda yardımcı olabilir misiniz?
 
Merhabalar

Sorunuzu tam olarak anlayamadım.

ilk olarak

(1) 1. departman, 1.kısımdan başlamak üzere

(2) giriş tutarları giriş sırasına göre alt alta,

(3) onun altına

(4) 1.departman 1.kısım çıkış tutarları sıra numarasına göre alt alta
gelmeli;

Yani, işlem bittikten sonra sıralama şu şekilde mi olacak?

D8-> 4
D9-> 3
D10-> 1
 
Sıralama yaptıkdan sonra tablonun görünümüm ekteki gibi olmalı.
 
Son düzenleme:
Sıralamadan ziyade sanki hizalama gibi birşey anladım ben sorununuzu ...

Aşağıdaki kodu çalıştırınız.

Kod:
Sub Sutunda_Sirala()
Dim arrG()
Dim arrC()
Dim x%, y%, i%, j%
For j = 4 To 21 Step 3
    For i = 8 To 37
        If Trim(Cells(i, j)) <> Empty Then
           y = y + 1
           ReDim Preserve arrG(1 To 2, 1 To y)
           arrG(1, y) = Cells(i, 3)
           arrG(2, y) = Cells(i, j)
           Cells(i, j) = Empty
        End If
        If Trim(Cells(i, j + 1)) <> Empty Then
           x = x + 1
           ReDim Preserve arrC(1 To 2, 1 To x)
           arrC(1, x) = Cells(i, 3)
           arrC(2, x) = Cells(i, j + 1)
           Cells(i, j + 1) = Empty
        End If
     Next i
Next j
Range("c8:c37").ClearContents
i = 8: y = 0
For j = 4 To 21 Step 3
    y = y + 1
    Cells(i, j) = arrG(2, y)
    Cells(i, 3) = arrG(1, y)
    Cells(i, j).Offset(1, 1) = arrC(2, y)
    Cells(i, 3).Offset(1, 0) = arrC(1, y)
    i = i + 2
Next j
End Sub
 
Kodlar çalışıyor ama iş görmede ne yazık ki!
şöyleki ekteki tablo verdiğim örnekteki gibi değiştiğinde kodlar iş görmüyor
Revize edilmiş Sırala R1.xls dosyasındaki yenilenmiş veriler; yine revize edilmiş Sonuç Sıralaması R1.xls tablosundaki gibi olması gerektiği halde kodlar yanlış sonuç veriyor.
 
Ama Sn.ismailmuhcu, ben de m&#252;neccim de&#287;ilim ki ...

G&#246;nderdi&#287;iniz &#246;rne&#287;e g&#246;re yapt&#305;k &#231;al&#305;&#351;may&#305; ...

&#214;nceden &#351;u &#246;rnekleri g&#246;nderseydiniz, bizde haliyle daha iyi kavrard&#305;k konuyu ...

&#350;aka bir yana, bakal&#305;m inceleyelim ... &#199;&#246;zeriz
 
Aşağıdaki kodu çalıştırınız.
Kod:
Sub Sutunda_Sirala()
Dim arrG()
Dim arrC()
Dim x%, y%, i%, j%, z%
For j = 4 To 21 Step 3
    For i = 8 To 37
        If Trim(Cells(i, j)) <> Empty Then
           y = y + 1
           ReDim Preserve arrG(1 To 4, 1 To y)
           arrG(1, y) = Cells(i, 3)
           arrG(2, y) = Cells(i, j)
           arrG(3, y) = j
           arrG(4, y) = Cells(i, 2)
           Cells(i, j) = Empty
        End If
        If Trim(Cells(i, j + 1)) <> Empty Then
           x = x + 1
           ReDim Preserve arrC(1 To 4, 1 To x)
           arrC(1, x) = Cells(i, 3)
           arrC(2, x) = Cells(i, j + 1)
           arrC(3, x) = j + 1
           arrC(4, x) = Cells(i, 2)
           Cells(i, j + 1) = Empty
        End If
     Next i
Next j
Range("b8:c37").ClearContents
z = 8
For j = 4 To 21 Step 3
    For i = 1 To y
        If arrG(3, i) = j Then
           Cells(z, arrG(3, i)) = arrG(2, i)
           Cells(z, 3) = arrG(1, i)
           Cells(z, 2) = arrG(4, i)
           arrG(2, i) = ""
           z = z + 1
        End If
    Next i
    For i = 1 To x
        If arrC(3, i) = j + 1 Then
           Cells(z, arrC(3, i)) = arrC(2, i)
           Cells(z, 3) = arrC(1, i)
           Cells(z, 2) = arrC(4, i)
           arrC(2, i) = ""
           z = z + 1
        End If
    Next i
Next j
End Sub
 
Son düzenleme:
&#304;ste&#287;iniz &#252;zere, B s&#252;tunu da s&#305;ralamaya dahil edilmi&#351;tir.

7 nolu mesajdaki kodlar&#305; revize ettim. &#304;nceleyiniz.
 
Çok teşekkürler, minnettarım... :)
 
Geri
Üst