• DİKKAT

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

Sütunlara Göre Sıralama

  • Konbuyu başlatan Konbuyu başlatan altanson
  • Başlangıç tarihi Başlangıç tarihi
Katılım
25 Nisan 2007
Mesajlar
442
Excel Vers. ve Dili
Office 2010
Arkadaşlar merhaba,

ekteki dosyada da belirttiğim sütunları makro koyarak sıralamak istiyorum.

Teşekkürler.
 
isyediğin böyle bir şeymi?
 
elinize sağlık teşekkürler,

azalan şeklinde sıralamak için formülü nasıl düzeltmemiz gerekli?
 
Merhaba,

1. satırda hangi kolonda tek tıklama yada sağ tıklama yapılırsa tek tıklamada A-Z, Sağ tıklamada Z-A şeklidne sıralama yapar.

İlgili kodlar ilgili sayfanın kod bölümündedir. Satır ve Sütunları otomatik bulur.

Kod:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
   Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=2
End If
Target.Offset(1, 0).Select
Son:
End Sub



Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Son
If Intersect(Target, [1:1]) Is Nothing Then Exit Sub
SonK = [A1].End(2).Column
SonS = [A65536].End(3).Row
If Target.Column <= SonK Then
   Range(Cells(2, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, ActiveCell.Column), Order1:=1
End If
Son:
End Sub
 
arkada&#351;lar cevaplar&#305;n&#305;z ve ilginiz i&#231;in te&#351;ekk&#252;rler.
 
Arkadaşlar yeni bir sorum var;

Ekteki dosyada olduğu gibi sıralama yapılacak bölümü nasıl sınırlandırabiliriz. yani en altta bulunan toplam satırı sıralamaya dahil olmayacak; fakat sıralama yapılacak satır sayısı sürekli değişiyor.
 
SonS = [A65536].End(3).Row sat&#305;r&#305;n&#305;
SonS = [A65536].End(3).Row - 1 olarak de&#287;i&#351;tirin
toplam&#305;n son sat&#305;r, oldu&#287;u varsay&#305;lm&#305;&#351;t&#305;r.
 
Sn. Necdet_Yesertener'in yollad&#305;&#287;&#305; dosya daha kapsaml&#305; olmu&#351; te&#351;ekk&#252;rler fakat ben ilk &#246;rnekteki kodlar&#305; dosyama uyarlad&#305;m.

Kod:
Sub b_stunu()

    Range("A3:D1000").Select
    Range("b3").Activate
    Selection.Sort Key1:=Range("b3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

yukar&#305;daki kodu nas&#305;l d&#252;zeltebiliriz?

Kod:
Sub b_stunu()
    SonS = [A65536].End(3).Row - 1
    Range("A3:D1000").Select
    Range("b3").Activate
    Selection.Sort Key1:=Range("b3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=SonS, _
        DataOption1:=xlSortNormal
End Sub

&#351;eklinde d&#252;zeltmeye &#231;al&#305;&#351;t&#305;m olmad&#305;.
 
Son düzenleme:
Arkadaşlar bu kodu verdiğim örnekteki gibi değiştirmeme yardım eder misiniz?

Kod:
Sub b_stunu()

    Range("A3:D1000").Select
    Range("b3").Activate
    Selection.Sort Key1:=Range("b3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
 
Neden bir s&#305;ralama i&#231;in 3 adet program yazmak istiyorsunuz anlamakta g&#252;&#231;l&#252;k &#231;ekiyorum.

A&#351;a&#287;&#305;daki kodlar&#305; sayfan&#305;n kod b&#246;l&#252;m&#252;ne kopyalay&#305;n ve hangi s&#252;tunda &#231;ift t&#305;klarsan&#305;z o s&#252;tuna g&#246;re 3. sat&#305;rdan itibaren K&#252;&#231;&#252;kten B&#252;y&#252;&#287;e s&#305;ralar.

Parametrik d&#252;&#351;&#252;nmek her zaman daha iyidir.


Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
On Error GoTo Son
SonK = [A2].End(2).Column
SonS = [A65536].End(3).Row - 1
If Target.Column <= SonK Then
   Range(Cells(3, 1), Cells(SonS, SonK)).Sort Key1:=Cells(1, Target.Column), Order1:=1
End If
[A1].Activate
Son:
End Sub
 
Bu şekilde bir deneyiniz.
Kod:
Sub Makro1()
[a3].Sort Key1:=Range("B:B"), Order1:=xlDescending, Key2:=Range("C:C") _
, Order2:=xlDescending, Key3:=Range("D:D")
End Sub
 
Neden bir sıralama için 3 adet program yazmak istiyorsunuz anlamakta güçlük çekiyorum.

Aşağıdaki kodları sayfanın kod bölümüne kopyalayın ve hangi sütunda çift tıklarsanız o sütuna göre 3. satırdan itibaren Küçükten Büyüğe sıralar.

Parametrik düşünmek her zaman daha iyidir.

Necdet Bey, sizin benim yapmak istediğimi geliştirerek yaptığınızı biliyorum fakat makrolar hakkında pek bilgim yok, bir önceki mesajda verdiğim makroyu dosyama uyguladım ve diğer dosyalarıma da değişiklik yaparak uygulayabiliyorum.

Kod:
Sub b_stunu()

    Range("A3:D1000").Select
    Range("b3").Activate
    Selection.Sort Key1:=Range("b3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

bu makroyu son dolu hücreden önceki hücreleri kapsayasacak şekilde değiştirirsem işimi fazlasıyla görecek. Tekrar teşekkürler...
 
Kod:
Sub b_stunu()

    Range("A3:D" & [A65536].End(3).Row - 1).Select
    Range("b3").Activate
    Selection.Sort Key1:=Range("b3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub
 
Arkada&#351;lar yarc&#305;mc&#305; olan herkese te&#351;ekk&#252;rler. Son makro sorunumu halletti.
 
Arkadaşlar yine bir sorum olacak;

yukarıdaki makro ile sıralama yaptığım sütunlarda şöyle bir formül ile başka bir dosyadan veri alıyorum;

=EĞER(EHATALIYSA(DÜŞEYARA(B4;'\\xx.xx.x.xxx\users\aaa\My Documents\Data\[31.01.08.xls]Sayfa1'!$A$1:$E$14;3;YANLIŞ));"---";DÜŞEYARA(B4;'\\xx.xx.x.xxx\users\aaa\My Documents\Data\[31.01.08.xls]Sayfa1'!$A$1:$E$14;3;YANLIŞ))

fakat formül sonucu "---" ise azalan sıralama yaptığımda bu hücreler listenin en başında yer alıyor.

Azalan sıralama yaptığımda bu verilerin listenin en altında yer alması için makroyu nasıl düzeltebilirim?
 
Arkadaşlar yine bir sorum olacak;

yukarıdaki makro ile sıralama yaptığım sütunlarda şöyle bir formül ile başka bir dosyadan veri alıyorum;

=EĞER(EHATALIYSA(DÜŞEYARA(B4;'\\xx.xx.x.xxx\users\aaa\My Documents\Data\[31.01.08.xls]Sayfa1'!$A$1:$E$14;3;YANLIŞ));"---";DÜŞEYARA(B4;'\\xx.xx.x.xxx\users\aaa\My Documents\Data\[31.01.08.xls]Sayfa1'!$A$1:$E$14;3;YANLIŞ))

fakat formül sonucu "---" ise azalan sıralama yaptığımda bu hücreler listenin en başında yer alıyor.

Azalan sıralama yaptığımda bu verilerin listenin en altında yer alması için makroyu nasıl düzeltebilirim?

Arkadaşlar makroyu dediğim gibi değiştirmenin bir yolu var mıdır? Yardımcı olacaklara şimdiden teşekkürler...
 
makroyu dedi&#287;im &#351;ekilde d&#252;zeltmek m&#252;mk&#252;n de&#287;il mi? ba&#351;ka bir makro mu yazmak gerekli acaba?
 
Geri
Üst