• DİKKAT

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

Sıralama

Katılım
15 Temmuz 2012
Mesajlar
2,802
Excel Vers. ve Dili
Ofis 2021 TR 64 Bit
Merhaba hayırlı geceler.

Excel sayfamın K sütununda tarih ve sayı var,
ben bunları veri a'den z'ye sırala dediğimde aşağıdaki gibi sıralama yapıyor.

2016/1
2016/100
2016/101
2016/102
2016/2
2016/200
2016/201 gibi sıralama yapıyor.

Benim istediğim ise;

2016/1
2016/2
2016/3
2016/4 gibi devam edip gitmesini istiyorum.

Yardım edecek arkadaşlara şimdiden teşekkür ederim.
 
Merhaba.

-- TARİH/SAYI birleşiminin A sütununda olduğu,
-- 1'inci satırın başlık satırı olduğu,
-- Tablonun ise A:Z sütunlarında olduğu,
varsayımlarıyla AA sütununu yardımcı sütun olarak kullanarak aşağıdaki şekilde olabilir.
(Bir yıla ait tarih/sayı verisi 1.000'in üzerinde ise koddaki 1.000 sayısı yerine 1 adet 0 artırarak 10.000 yapabilirsiniz)

Kod'u ilgili sayfanın kod bölümüne yapıştırıp çalıştırın.
.
Kod:
[FONT="Arial Narrow"][B][COLOR="Blue"]Sub TARİH_SAYI_SIRALA()[/COLOR][/B]
Range("[B][COLOR="Blue"]BB3[/COLOR][/B]:BB" & [[B][COLOR="Red"]A[/COLOR][/B]65536].End(3).Row).Formula = "=10000*LEFT([B][COLOR="Red"]A3[/COLOR][/B],4)+MID([B][COLOR="red"]A3[/COLOR][/B],6,255)"
Range("[B][COLOR="Blue"]BB3[/COLOR][/B]:BB" & [[B][COLOR="Red"]A[/COLOR][/B]65536].End(3).Row).Value = Range("[B][COLOR="Blue"]BB3[/COLOR][/B]:BB" & [[B][COLOR="Red"]A[/COLOR][/B]65536].End(3).Row).Value
Range("A3:BB" & [[B][COLOR="Red"]A[/COLOR][/B]65536].End(3).Row).Sort Range("[B][COLOR="Blue"]BB3[/COLOR][/B]"), xlAscending
Range("BB:BB").ClearContents
[B][COLOR="Blue"]End Sub[/COLOR][/B]

[B][COLOR="Blue"]Sub SIRALA_YENİDEN_NUMARALANDIR()[/COLOR][/B]
    [COLOR="YellowGreen"]'*** SIRALAMA ***[/COLOR]
Range("BB3:BB" & [A65536].End(3).Row).Formula = "=10000*LEFT(A3,4)+MID(A3,6,255)"
Range("BB3:BB" & [A65536].End(3).Row).Value = Range("BB3:BB" & [A65536].End(3).Row).Value
Range("A3:BB" & [A65536].End(3).Row).Sort Range("BB3"), xlAscending
    [COLOR="yellowgreen"]'***1'den başlayarak her yıl için sıra numarası verme ***[/COLOR]
Range("BB3:BB" & [A65536].End(3).Row).Formula = "=LEFT(A3,4)&""/""&COUNTIF($A$3:A3,LEFT(A3,4)&""*"")"
Range("BB3:BB" & [A65536].End(3).Row).Value = Range("BB3:BB" & [A65536].End(3).Row).Value
Range("BB3:BB" & [A65536].End(3).Row).Copy Range("A3:A" & [A65536].End(3).Row)
Range("BB:BB").ClearContents
[B][COLOR="Blue"]End Sub[/COLOR][/B][/FONT]
 
Son düzenleme:
Sayın Ömer Bey ilginize çok teşekkür ediyorum, yazmış olduğunuz kodları sayfama uygulamaya çalıştığımda
Range("AA2:AA" & [A65536].End(3).Row).Sort Range("AA2"), xlAscending bu kısmı sarıya boyuyor.

Benim sayfamdaki veriler A3 sütunu ile AD3 sütunu arasında. Sıralanacak veri K sütununda.
Yardımcı sütunuda BB olarak ayarlayabilir misiniz?
 
Son düzenleme:
Ömer Bey kodları sayfama uyguladım.

Sonuç olarak aşağıdaki gibi oldu.

2016/100
2016/101
2016/234
2016/24
2016/243
2016/268
2016/27
2019/271 gibi oldu.

Benim istediğim ise

2016/1
2016/2
2016/3
2016/4 gibi olmasını istemiştim.
 
Sayfayı yenileyerek önceki cevabımı kontrol edin, kod'u güncelledim.
 
Ömer Bey kodları sayfama uyguladım. Sıralanacak veri K sütununda

Sonuç olarak aşağıdaki gibi oldu.

2016/100
2016/101
2016/234
2016/24
2016/243
2016/268
2016/27
2019/271 gibi oldu.

Benim istediğim ise

2016/1
2016/2
2016/3
2016/4 gibi olmasını istemiştim.

Sayın Ömer Bey önceki kodlarınızı sayfama uyguladım, yukarıdaki alıntıdaki bilgiler gibi oluyor.
 
Önceki kod cevabımı güncelledim, sayfayı yenileyerek önceki cevabımı kontrol edin.
-- Sadece sıralama istiyorsanız ilk kod blokunu,
-- Sıralamadan sonra her yıl için 1'den başlayarak yeniden numaralandırma istiyorsanız ikinci kod blokunu,
kullanın.

Son cevabınızdaki verileri örnek belgeye uyguladım.
.
 

Ekli dosyalar

Son düzenleme:
Sayın Ömer çok teşekkür ederim, beni büyük bir zahmetten kurtardınız, Allah razı olsun.
Hayırlı geceler diliyorum.

Aşağıdaki kod işime yaradı.

Kod:
Sub TARİH_SAYI_SIRALA()
Range("BB3:BB" & [K65536].End(3).Row).Formula = "=10000*LEFT(K3,4)+MID(K3,6,255)"
Range("BB3:BB" & [K65536].End(3).Row).Value = Range("BB3:BB" & [K65536].End(3).Row).Value
Range("A3:BB" & [K65536].End(3).Row).Sort Range("BB3"), xlAscending
Range("BB:BB").ClearContents
End Sub
 
Eyvallah, cümlemizden.
Kolay gelsin.
 
Geri
Üst