Formüle ve Veriye bağlı Sıralama Makrosu

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Değerli Üstatlar Merhaba,
Formüle ve Veriye bağlı sıralama makrosuna ihtiyacım bulunmaktadır. Yardımcı olabilir misiniz?
Ekte de görüleceği üzere Makro hücrelerdeki formülleri silmeden, önce C sütununu A'dan Z'ye sıralama yapması gerekiyor, sonra ise D sütunun C sütunundaki aynı grup içinde A'dan Z'ye sıralama yapması mümkün müdür acaba? Şimdiden Teşekkür ederim.
 

Ekli dosyalar

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Eksik kalan hususlar var.
Sıralama işleminin Ekli dosyadaki Sayfa2 de yapılması gerekiyor.
Bir diğer husus ise, "İşçilerin Özlük Bilgileri" sayfasındaki E sütununa herhangi bir yazı yazdığım zaman, Sayfa2'deki sıralama otomatik olarak makro tarafından tekrar yapılması gerekiyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,435
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Siz "İşçilerin Özlük Bilgileri" sayfasında "E" sütununda değişiklik yaptıkça veri aktarımı otomatik olacaktır. Diğer sayfaya hiç formül yazmanıza gerek yoktur.
 

Ekli dosyalar

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Deneyiniz.

Siz "İşçilerin Özlük Bilgileri" sayfasında "E" sütununda değişiklik yaptıkça veri aktarımı otomatik olacaktır. Diğer sayfaya hiç formül yazmanıza gerek yoktur.
Korhan Ayhan Hocam elinize sağlık çok güzel hazırlamışsınız TEŞEKKÜR EDERİM. Ancak bir iki husus ihtiyaç hasıl oldu ekleme yapabilir misiniz?
İlginiz için şimdiden Teşekkür ederim.
Makro mevcut sıralamayı koruyarak aktarma işlemini yaparken "Çalışma Bilgisi"; "Çalışan", "Ücretsiz İzinli", "İdari İzinli" olanları aktaracak, "Emekli", "İstifa", "İş Sözleşmesi Fesih" ve "Diğer" durumlar aktarmaya dahil edilmeyecek. Ayrıca aktarma işlemine T.C. Kimlik No'ların da dahil edilmesi gerekiyor. Detaylar ekli dosyada mevcut. Emeğiniz için şimdiden TEŞEKKÜR EDERİM.
 

Ekli dosyalar

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Korhan AYHAN Hocam denedim gayet güzel çalışıyor, elinize sağlık TEŞEKKÜR EDERİM. Sizin gibi makro yazabilmeyi ne kadar çok isterdim bilemezsiniz. Keşke sıfırdan başlayan canlı bir makro kursu olsa da katılsam.
İyi günler.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,435
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tahmin edebiliyorum. Çalışırsanız ve vakit ayırırsanız sizde yazabilirsiniz.

Ama önce excelin menülerine ve içeriklerine hakim olmanız gerekiyor. Sonrasında zaten ister istemez makrolara yöneliyorsunuz.

Korhan AYHAN Hocam denedim gayet güzel çalışıyor, elinize sağlık TEŞEKKÜR EDERİM. Sizin gibi makro yazabilmeyi ne kadar çok isterdim bilemezsiniz. Keşke sıfırdan başlayan canlı bir makro kursu olsa da katılsam.
İyi günler.
 

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Korhan Hocam Merhaba, Nasılsınız?
Sizin yazdığınız makroyu farazi bilgilerle denemiştim gayet güzel çalıyordu, ancak gerçek bilgilerle deneyince durum değişti.
Makro isimleri değilde T.C. Kimlik Numaraları büyükten küçüğe sıralama yapıyor oysa bize gerekli olan, aynı grup içinde isimlerin alfabetik şekilde sıralanması olacak. Tabii bu arada önceden olduğu gibi Çalışan, Ücretsiz İzinli vb. personeller aktarılacak diğerleri aktarılmayacak.
Yardımınız için şimdiden TEŞEKKÜR EDERİM.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,435
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sorgu satırını aşağıdaki gibi değiştirip deneyiniz.

SQL:
Sorgu = "Select F1,F2,F3 & ' ' & F4,F5 From [İşçi Özlük Bilgi Girişi$C8:G] Where F1 Is Not Null And F5 In('Çalışan','Ücretsiz İzinli','İdari İzinli') Group By F1,F2,F3 & ' ' & F4,F5 Order By F1,F3 & ' ' & F4"
 

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Sorgu satırını aşağıdaki gibi değiştirip deneyiniz.

SQL:
Sorgu = "Select F1,F2,F3 & ' ' & F4,F5 From [İşçi Özlük Bilgi Girişi$C8:G] Where F1 Is Not Null And F5 In('Çalışan','Ücretsiz İzinli','İdari İzinli') Group By F1,F2,F3 & ' ' & F4,F5 Order By F1,F3 & ' ' & F4"
Korhan Hocam, yazdığınız kodu ekledim, makro çalıştı ama bu sefer de isim sıralamasında hata çıktı. Aysun Ç. Alfabetik olarak Ayşe Kübra K'dan önce gelmesine rağmen makro Ayşe Kübra K'yı birinci sıraya, Aysun Ç'yi ikinci sıraya getiriyor bu sorun da çözülebilir mi?
Birde Sıralama Sayfası'nın yazı tipi "Calibri" yerine "Times New Roman" olabilir mi?
İlginiz ve Yardımınız için TEŞEKKÜR EDERİM.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,435
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Sirali_Aktar()
    Dim Dosya As String, S1 As Worksheet
    Dim Baglanti As Object, Kayit_Seti As Object, Sorgu As String
    
    Dosya = ThisWorkbook.FullName
    
    Set Baglanti = CreateObject("AdoDb.Connection")
    Set Kayit_Seti = CreateObject("AdoDb.Recordset")
    Set S1 = Sheets("Sıralama Sayfası")
    
    S1.Range("C8:F" & S1.Rows.Count).Clear
    
    Baglanti.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    Dosya & ";Extended Properties=""Excel 12.0;Hdr=No"""
            
    Sorgu = "Select F1,F2,F3 & ' ' & F4,F5 From [İşçi Özlük Bilgi Girişi$C8:G] Where F1 Is Not Null And F5 In('Çalışan','Ücretsiz İzinli','İdari İzinli') Group By F1,F2,F3 & ' ' & F4,F5 Order By F1,F3 & ' ' & F4 Asc"
    Kayit_Seti.Open Sorgu, Baglanti, 1, 1
    If Kayit_Seti.RecordCount > 0 Then
        S1.Range("C8").CopyFromRecordset Kayit_Seti
        S1.Range("C8:F" & S1.Rows.Count).Sort S1.Range("C8"), xlAscending, S1.Range("E8"), , xlAscending
        S1.Columns.AutoFit
    End If
        
    If Kayit_Seti.State <> 0 Then Kayit_Seti.Close
    If Baglanti.State <> 0 Then Baglanti.Close
    
    Set Kayit_Seti = Nothing
    Set Baglanti = Nothing
    Set S1 = Nothing
End Sub
 

akmlyx

Altın Üye
Katılım
24 Aralık 2010
Mesajlar
177
Excel Vers. ve Dili
Excel 2010
Dili: Türkçe
Altın Üyelik Bitiş Tarihi
16-03-2025
Korhan Hocam Merhaba, yeni makronuzu denedim bir sorun çıkmadan çalıştı. Sürpriz bir sorun çıkmazsa şimdilik gayet güzel çalışıyor. Emeğinize sağlık Teşekkür ederim.
 
Üst