Şarta bağlı listeleme

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
20
Excel Vers. ve Dili
Office Pro 2016
Merhaba herkese kolay gelsin;
Elimde olan personel listesini isteğime uygun listelemek istiyorum yardımcı olur musunuz? Örnek dosya içeresinde açıklama yazdım
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
10,016
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Farklı bir yaklaşım yaptığım ekli dosyayı inceleyiniz:
 

Ekli dosyalar

5353

Altın Üye
Altın Üye
Katılım
20 Ocak 2005
Mesajlar
390
Listeleme Büyükten küçüğe ad rakam gibi. A dan Z ye şeklinde otomatik gelir mi ? Sayfa 2 yani.
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
20
Excel Vers. ve Dili
Office Pro 2016
Farklı bir yaklaşım yaptığım ekli dosyayı inceleyiniz:
Hocam ilgi alakanız için çok teşekkür ederim bu çalışmayı farklı amaçlar için değerlendirebilirim fakat oradaki amacım liste almak değildi aslında kodları öğrenip tebliğ dosyası oluşturmaktı.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
10,016
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Jandarma Astsubay için aşağıdaki makroyu kullanabilirsiniz. Önceki dosyamda yer alan userformdaki Listele düğmesinin kodlarında çok küçük değişiklikler yaparak bu işlemi yaptığımı görebilirsiniz. İki kodu karşılaştırmanızı tavsiye ederim:

PHP:
Sub jan_as()
Set s1 = Sheets("1")
Set s2 = Sheets("2")
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "D").End(3).Row)
eski = WorksheetFunction.Max(3, s2.Cells(Rows.Count, "D").End(3).Row)
s2.Range("B3:H" & eski).ClearContents
Set con = VBA.CreateObject("adodb.Connection")
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select F2,F3,F5,F6,F7,F8 from[1$B3:I" & son & "] where F3='JANDARMA ASTSUBAY' "
Set rs = con.Execute(sorgu)
s2.[C3].CopyFromRecordset rs
s2.Columns("B:G").EntireColumn.AutoFit
yeni = WorksheetFunction.Max(3, s2.Cells(Rows.Count, "D").End(3).Row)
For i = 3 To yeni
    s2.Cells(i, "B") = i - 2
Next
s2.Activate
End Sub



LİSTELE düğmesinin kodları:

PHP:
Private Sub CommandButton1_Click()
Set s1 = Sheets("1") 'sayfalara kısa ad veriyoruz
Set s2 = Sheets("2") 'sayfalara kısa ad veriyoruz
son = WorksheetFunction.Max(3, s1.Cells(Rows.Count, "D").End(3).Row) 'veri tablosundaki son dolu satır numarasını buluyoruz
eski = WorksheetFunction.Max(3, s2.Cells(Rows.Count, "D").End(3).Row) 'rapor sayfasındaki son dolu satır numarasını buluyoruz
s2.Range("B3:H" & eski).ClearContents 'rapor sayfasındaki eski verileri siliyoruz
Set con = VBA.CreateObject("adodb.Connection") 'burdan itibaren SQL-ADO ile veritabanı sorgusu oluşturuyoruz
con.Open "provider=microsoft.ace.oledb.12.0;data source=" & _
ThisWorkbook.FullName & ";extended properties=""Excel 12.0;hdr=no"""
sorgu = "select F2,F3,F5,F6,F7,F8 from[1$B3:I" & son & "] where F3='" & ListBox1.Value & "' " 'SQL sorgumuz
Set rs = con.Execute(sorgu) 'sorguyu çalıştırma
s2.[C3].CopyFromRecordset rs 'sorgu sonucunu excel sayfasına aktarma
Unload Me 'userformu kapatma
s2.Columns("B:G").EntireColumn.AutoFit 'rapor sayfasının sütunlarını uygun genişliğe getirme
yeni = WorksheetFunction.Max(3, s2.Cells(Rows.Count, "D").End(3).Row) 'yeni verilerdeki son dolu satır numarasını bulma
For i = 3 To yeni 'döngü ile yeni verilere sıra numarası verme
    s2.Cells(i, "B") = i - 2
Next
s2.Activate 'rapor sayfasını açma
End Sub
 
Son düzenleme:

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
20
Excel Vers. ve Dili
Office Pro 2016
Şimdi anladım hocam teşekkür ederim ben butona kodu çalıştırı verdim sadece
 
Üst