Soru Rütbe ve Sicile Göre Sıralama Yapmak

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Herkese Merhaba;
Ekte bir excel ekledim. Burada VERİ sayfasında sicil rütbe ve bürolar var.
VERİ sayfasında iki tane düğme yaptım Rütbe Sicil Sıralama - --- Büroya Göre Sıralama şeklinde

Benim isteğim
1. İşlem : Rütbe ve Sicil Sıralamaya tıklayınca A sütunundaki sıralama hariç olmak üzere B2 - N2 aralığında excelin sonuna kadar önce rütbeye göre sıraya koyacak ( rütbeler aynı ise aynı rütbe içinde sicili küçük olanı ilk sıraya koyacak.) daha sonra sicili küçük olandan sıraya koyacak
Bu yüzden rütbeler elle yazılmasın diye KONTROL sayfasında sırası ile rütbeleri yazdım. Sıralama aynen öyle olacak

2. İşlem : Önce Bürolara göre sıralama yapacak sonra aynı büro içerinde rütbe ,( aynı büro içerisinde rütbeler aynı ise aynı rütbe içinde sicili küçük olanı ilk sıraya koyacak.) daha sonra sicili küçük olandan sıraya koyacak şekilde iki makroya ihtiyacım var. Elimde bir makro var ama revize edemedim. Yardımcı olur diye eklemek istiyorum.
Bu kodları user form aracılı ile de kullanmak istiyorum böylece userformda her yeni kayıtta sıralama yapmayı düşünüyorum.

Kod:
Sub RUTBEYE_GORE_SIRALA()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic '    bu satır sonradan eklendi
Set s1 = Sheets("Sayfa1")
sonsat = s1.Cells(Rows.Count, 1).End(3).Row
If sonsat = 1 Then Exit Sub
    s1.Columns("R:R").Insert Shift:=xlToRight
    ActiveWorkbook.Names.Add Name:="rutbe", RefersTo:="=Sayfa2!$Z$2:$Z$17"
    s1.[R2].Formula = "=MATCH(G2,rutbe,0)"
    s1.[R2].AutoFill Destination:=s1.Range("R2:R" & sonsat)
    s1.Range("A2:Z" & sonsat).Sort Key1:=s1.[E2], Order1:=1, Key2:=s1.[R2], Order2:=1, Key3:=s1.[C2], ORder3:=1
    Columns("R:R").Delete Shift:=xlToLeft
Application.ScreenUpdating = True
MsgBox "RÜTBEye göre sıralama yapıldı."
End Sub
 

Ekli dosyalar

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Bu konuda yardımcı olabilecekyok mu acaba
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba , sayfadaki butona bastığınızda sıralanmasını istiyorsunuz fakat sıralamanın kontrol sayfasındaki sıralamaya göre yapılmasını istiyorsunuz, ama A sütunundaki sıra numaraları değişmeyecek doğru mu anladım ?
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Evet a sütunundaki sıra numaraları olduğu gibi kalacak . Kontol sayfasındaki rütbe sirasina uyacak. Büro siralamasi da kontrol sayfasinsaki siraya göre olacak.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Deneyiniz..

Kod:
Sub Rutbe_Sicil_Sirala()
    Dim VeriSyf
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat - 1).FormulaR1C1 = "=MATCH(RC[4],KONTROL!C[1],0)"
    VeriSyf.Range("A2", "A" & SonSat - 1).Value = VeriSyf.Range("A2", "A" & SonSat - 1).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending, Key2:=VeriSyf.[B2], ORder2:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat ).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Buro_Sirala()
    Dim VeriSyf
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Rutbe_Sicil_Sirala
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat - 1).FormulaR1C1 = "=MATCH(RC[5],KONTROL!C,0)"
    VeriSyf.Range("A2", "A" & SonSat - 1).Value = VeriSyf.Range("A2", "A" & SonSat - 1).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat ).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub
 

Ekli dosyalar

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Deneyiniz..

Kod:
Sub Rutbe_Sicil_Sirala()
    Dim VeriSyf
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat - 1).FormulaR1C1 = "=MATCH(RC[4],KONTROL!C[1],0)"
    VeriSyf.Range("A2", "A" & SonSat - 1).Value = VeriSyf.Range("A2", "A" & SonSat - 1).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending, Key2:=VeriSyf.[B2], ORder2:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat ).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Buro_Sirala()
    Dim VeriSyf
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Rutbe_Sicil_Sirala
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat - 1).FormulaR1C1 = "=MATCH(RC[5],KONTROL!C,0)"
    VeriSyf.Range("A2", "A" & SonSat - 1).Value = VeriSyf.Range("A2", "A" & SonSat - 1).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat ).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub
Sayın @EmrExcel16 elinize emeğinize sağlık ama alttaki kısımlar hatalı geliyor.

alttaki satır hiç değişmiyor yerinden oynamıyor bir türlü. Bu dosya alta doğru devam edip gidecek .

99

325325

MUSTAFA ULAŞ DEMİRDAĞ

ULAŞ

Polis Memuru

Personel Büro Amirliği

909794428

A Rh (+)

909794428

 

Ön Lisans

Erkek

Aktif

Aktif



büroya göre sıralamada da sicil hatası veriyor kırmızı renke gösterdiğim 4. sırada olmalıydı

3

320175

SAMİME ŞANLITÜRK

ŞANLITÜRK

Kıdemli Başpolis Memuru

Personel Büro Amirliği

4

322322

SERRA ÖNCEL

ÖNCEL

Polis Memuru

Personel Büro Amirliği

5

322323

AYKAN SELÇUK

SELÇUK

Polis Memuru

Personel Büro Amirliği

6

139102

ATAHAN OR

OR

Polis Memuru

Personel Büro Amirliği

7

871609

GÖKÇEN EĞİLMEZ

EĞİLMEZ

Çarşı ve Mahalle Bekçisi

Personel Büro Amirliği

 

Ekli dosyalar

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Kodları şu şekilde değiştirip dener misiniz.
Kod:
Sub Rutbe_Sicil_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[4],KONTROL!C[1],0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending, Key2:=VeriSyf.[B2], ORder2:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Buro_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 1).End(3).Row
    If SonSat < 3 Then Exit Sub
    Rutbe_Sicil_Sirala
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[5],KONTROL!C,0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026

Sayın @EmrExcel16 Elinize Emeğinize sağlık çalıştı kodlar . Sizden rica etsem Adı yazılı olan kısımlarını sadece A dan Z ye ve Z den A ya sırala şeklinde iki makro ekleyebilir misiniz..
ama dediğim gibi bu liste eklemler çıkarmalarla uzayıp yıllarca kullanılacak şekilde

 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
:) örnek verdiğiniz sicilin başındaki boşluğu silin.
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
:) örnek verdiğiniz sicilin başında boşluğu silin.
Sayın @EmrExcel16 Elinize Emeğinize sağlık çalıştı kodlar . Sizden rica etsem Adı yazılı olan kısımlarını sadece A dan Z ye ve Z den A ya sırala şeklinde iki makro ekleyebilir misiniz..
ama dediğim gibi bu liste eklemler çıkarmalarla uzayıp yıllarca kullanılacak şekilde
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Yani liste bu sefer sadece adı sutununa göre A dan Zye ve başka bir butonla da Z den A ya sıralama yapabilir mi. Size çok teşekkür ederim.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,520
Excel Vers. ve Dili
Office 365 Türkçe
Son isteklerinizle güncellenmiş kodlar.
Kod:
Option Explicit
Sub Rutbe_Sicil_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[4],KONTROL!C[1],0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending, Key2:=VeriSyf.[B2], ORder2:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Buro_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Rutbe_Sicil_Sirala
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[5],KONTROL!C,0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Isim_A_Z_sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("B2:N" & SonSat).Sort Key1:=VeriSyf.[C2], Order1:=xlAscending
    Application.ScreenUpdating = True
End Sub

Sub Isim_Z_A_sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("B2:N" & SonSat).Sort Key1:=VeriSyf.[C2], Order1:=xlDescending
    Application.ScreenUpdating = True
End Sub
 

TURKOLOG

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
744
Excel Vers. ve Dili
2016 64 TR
Altın Üyelik Bitiş Tarihi
29-10-2026
Son isteklerinizle güncellenmiş kodlar.
Kod:
Option Explicit
Sub Rutbe_Sicil_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[4],KONTROL!C[1],0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending, Key2:=VeriSyf.[B2], ORder2:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Buro_Sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Rutbe_Sicil_Sirala
    Application.ScreenUpdating = False
    VeriSyf.Range("A2", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[5],KONTROL!C,0)"
    VeriSyf.Range("A2", "A" & SonSat).Value = VeriSyf.Range("A2", "A" & SonSat).Value
    VeriSyf.Range("A2:N" & SonSat).Sort Key1:=VeriSyf.[A2], Order1:=xlAscending
    VeriSyf.Range("A2").Value = "1"
    VeriSyf.Range("A2", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
    Application.ScreenUpdating = True
End Sub

Sub Isim_A_Z_sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("B2:N" & SonSat).Sort Key1:=VeriSyf.[C2], Order1:=xlAscending
    Application.ScreenUpdating = True
End Sub

Sub Isim_Z_A_sirala()
    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("VERİ")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
    VeriSyf.Range("B2:N" & SonSat).Sort Key1:=VeriSyf.[C2], Order1:=xlDescending
    Application.ScreenUpdating = True
End Sub
Sayın @EmrExcel16 elinize emeğinize sağlık çok teşekkür ederim. Emeğiniz için.
 
Katılım
24 Haziran 2022
Mesajlar
26
Excel Vers. ve Dili
Excel 2016 - Tr
Altın Üyelik Bitiş Tarihi
24-06-2023
Merhabalar. Ben de kendi görev listem için araştırma yaparken bu başlığa denk geldim yardımcı olursanız çok sevinirim. Sayfadaki personel listesini başka sayfada bulunan verilere göre vba ile sıralama yaptırmak istiyorum. Kendim normal sıralama kısmından değerleri yazarak makro ile yaptırabiliyorum örnek dosyada inceleyebilirsiniz. Fakat sıralama verileri değişkenlik gösterebildiğinden her seferinde tekrar makro kaydetmek gerekiyor bunun önüne geçmek istiyorum. Buradaki en son çalışmayı inceledim, revize etmeye çalıştım fakat vba konusunda biraz zayıf olduğum için işlemleri anlamadım.

Benim istediğim kısıtlamalar şunlar;

1. Personel öncelikle E sütunundaki değerlere göre sıralanacak. Bu değerler veriler sayfasındaki değerlerle aynı sıralamaya göre olacak. Buradaki amaç, tablodaki verilerin, sıralama verilerini birebir referans alması ve sıralamanın da buradaki sıraya göre olması.

2. Personel daha sonra F sütunundaki değerlere göre sıralanacak. Bu değerler de veriler sayfasında mevcut. Buradaki fark veri doğrulama sütunundaki sıralama ile farklı olması. Görev saatleri veri doğrulama sütununda belirli bir düzen içinde, fakat sıralama sütununda ayrı bir düzen içerisinde.

3. Daha sonra rütbe ve sicile göre sıralama yapılması.

Biraz karışık anlatmış olabilirim. Amacım makroyu ortadan kaldırarak uzun ömürlü bir çalışma olmasını sağlamak ve daha sonraki kullanıcıların da basit şekilde yapabilmesini sağlamak. Örnek çalışmayı paylaşıyorum. Kendi asıl çalışma listem daha kapsamlı olduğu için buradaki asıl mantığı anlamaya çalışıyorum ki asıl çalışmama uygulayabileyim. Yardımcı olabilirseniz çok sevinirim.
 

Ekli dosyalar

Katılım
24 Haziran 2022
Mesajlar
26
Excel Vers. ve Dili
Excel 2016 - Tr
Altın Üyelik Bitiş Tarihi
24-06-2023
Sorunumu kendim halletim :)
Yukarıdaki yazılan kodların önce mantığını çözdüm sonra kendime göre revize ettim.
Faydalanmak isteyen meslektaşlarım olursa diye revize ettiğim kodları paylaşıyorum, bir önceki mesajımdaki örnek listeye bu kodlar uygulanabilir.
İyi çalışmalar.

Kod:
Sub Gorev_Unvan_Sırala()

    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("2.GRUP")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
   
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
   
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[B3], Order1:=xlAscending
   
    Gorev_Saat_Sırala
 
    VeriSyf.Range("A3", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[4],VERİLER!C[3],0)"
    VeriSyf.Range("A3", "A" & SonSat).Value = VeriSyf.Range("A3", "A" & SonSat).Value
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[A3], Order1:=xlAscending
    VeriSyf.Range("A3").Value = "1"
    VeriSyf.Range("A3", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
   
    Application.ScreenUpdating = True
   
End Sub

Sub Gorev_Saat_Sırala()

    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("2.GRUP")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
   
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
   
    VeriSyf.Range("A3", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[5],VERİLER!C[3],0)"
    VeriSyf.Range("A3", "A" & SonSat).Value = VeriSyf.Range("A3", "A" & SonSat).Value
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[A3], Order1:=xlAscending
    VeriSyf.Range("A3").Value = "1"
    VeriSyf.Range("A3", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
   
    Application.ScreenUpdating = True
   
End Sub
 
Katılım
22 Mart 2023
Mesajlar
5
Excel Vers. ve Dili
2003-2007 Türkçe
Sorunumu kendim halletim :)
Yukarıdaki yazılan kodların önce mantığını çözdüm sonra kendime göre revize ettim.
Faydalanmak isteyen meslektaşlarım olursa diye revize ettiğim kodları paylaşıyorum, bir önceki mesajımdaki örnek listeye bu kodlar uygulanabilir.
İyi çalışmalar.

Kod:
Sub Gorev_Unvan_Sırala()

    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("2.GRUP")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
  
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
  
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[B3], Order1:=xlAscending
  
    Gorev_Saat_Sırala

    VeriSyf.Range("A3", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[4],VERİLER!C[3],0)"
    VeriSyf.Range("A3", "A" & SonSat).Value = VeriSyf.Range("A3", "A" & SonSat).Value
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[A3], Order1:=xlAscending
    VeriSyf.Range("A3").Value = "1"
    VeriSyf.Range("A3", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
  
    Application.ScreenUpdating = True
  
End Sub

Sub Gorev_Saat_Sırala()

    Dim VeriSyf, SonSat
    Set VeriSyf = Sheets("2.GRUP")
    SonSat = VeriSyf.Cells(Rows.Count, 2).End(3).Row
  
    If SonSat < 3 Then Exit Sub
    Application.ScreenUpdating = False
  
    VeriSyf.Range("A3", "A" & SonSat).FormulaR1C1 = "=MATCH(RC[5],VERİLER!C[3],0)"
    VeriSyf.Range("A3", "A" & SonSat).Value = VeriSyf.Range("A3", "A" & SonSat).Value
    VeriSyf.Range("A3:F" & SonSat).Sort Key1:=VeriSyf.[A3], Order1:=xlAscending
    VeriSyf.Range("A3").Value = "1"
    VeriSyf.Range("A3", "A" & SonSat).DataSeries Rowcol:=xlColumns, Type:=xlLinear, Date:=xlDay, Step:=1, Trend:=False
  
    Application.ScreenUpdating = True
  
End Sub
Merhabalar;
Benim de bir problemim var. Ekte gönderdiğim dosya da görebilirsiniz. Gelen verilen günlük olarak karışık geliyor. Bu veriler sayaç değerleri. Bunları Sayaç sıralama kısmında günlük olarak sayaç numarasına göre sıralamam gerekiyor. Bu konuda yardımcı olur musunuz? Teşekkürler. İyi Çalışmalar dilerim.

 
Üst