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?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
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
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
Sıralama yaptıkdan sonra tablonun görünümüm ekteki gibi olmalı.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
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
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
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.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
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
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
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:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
&#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.
 
Katılım
18 Ağustos 2006
Mesajlar
154
Excel Vers. ve Dili
Mr Step Back
Çok teşekkürler, minnettarım... :)
 
Üst