skaan
Altın Üye
- Katılım
- 11 Mart 2005
- Mesajlar
- 261
- Excel Vers. ve Dili
- Microsoft 365
- Altın Üyelik Bitiş Tarihi
- 12-11-2025
Merhaba ;
Ekte bulunan örnek dosyada UserForm uzerınde Combobox ve Textbox kullanarak filtreleme yapnak istedim.
Combobox lar su anki durumda tam anlamıyla çalışmaktadırlar. Ancak Textbox lar ıle tarıh aralığına göre filtrelemeyı bırturlu
çalıştıramadım. Textbox lar içinde ayrıca bır kod yazabıldım ( Aşağıda kodları sizlere yazıyorum ) ama bu kodları genel dosyadaki kodun içine entegre edip hepsını userform da birarada çalıştıramadım. ( Bu halıyle ayrı olarak çalışmaktadırlar..)
Sizlerden ricam Combobox ve Textbox ları bırarada filtrelemede kullanabılmem için butun kodları bırlestırmemde yardımcı olmanızı rica ediyorum.
Saygılarımla;
Skaan
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim sasTarihColumn As Integer
Dim startDateSAS As Date, endDateSAS As Date
On Error GoTo ErrorHandler
' Çalışma sayfası ve tabloyu ayarla
Set ws = ThisWorkbook.Sheets("Rapor")
Set tbl = ws.ListObjects("Tablo1")
' SAS Tarihi sütununu al
On Error Resume Next
sasTarihColumn = Application.Match("SAS Tarihi", tbl.HeaderRowRange, 0)
On Error GoTo 0
If IsError(sasTarihColumn) Or sasTarihColumn <= 0 Then
MsgBox "SAS Tarihi başlığı bulunamadı!", vbCritical
Exit Sub
End If
' Tarihleri kontrol et
If TextBox1.Value = "" Or TextBox2.Value = "" Then
MsgBox "Lütfen SAS Tarihi için başlangıç ve bitiş tarihlerini girin.", vbExclamation
Exit Sub
End If
If Not IsDate(TextBox1.Value) Or Not IsDate(TextBox2.Value) Then
MsgBox "Geçerli bir tarih giriniz (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
' Tarihleri al
startDateSAS = DateValue(TextBox1.Value)
endDateSAS = DateValue(TextBox2.Value)
' SAS Tarihi aralığına göre filtre uygula
tbl.Range.AutoFilter Field:=sasTarihColumn, _
Criteria1:=">=" & Format(startDateSAS, "yyyy-mm-dd"), Operator:=xlAnd, _
Criteria2:="<=" & Format(endDateSAS, "yyyy-mm-dd")
Exit Sub
ErrorHandler:
MsgBox "Hata oluştu: " & Err.Description, vbCritical
End Sub
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim gbTarihColumn As Integer
Dim startDateGB As Date, endDateGB As Date
On Error GoTo ErrorHandler
' Çalışma sayfası ve tabloyu ayarla
Set ws = ThisWorkbook.Sheets("Rapor")
Set tbl = ws.ListObjects("Tablo1")
' Gümrük Beyanname Tarihi sütununu al
On Error Resume Next
gbTarihColumn = Application.Match("Gümrük Beyanname Tarihi", tbl.HeaderRowRange, 0)
On Error GoTo 0
If IsError(gbTarihColumn) Or gbTarihColumn <= 0 Then
MsgBox "Gümrük Beyanname Tarihi başlığı bulunamadı!", vbCritical
Exit Sub
End If
' Gümrük Beyanname Tarihi için başlangıç tarihini uygula
If TextBox3.Value <> "" Then
If Not IsDate(TextBox3.Value) Then
MsgBox "Lütfen geçerli bir başlangıç tarihi girin (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
startDateGB = DateValue(TextBox3.Value)
tbl.Range.AutoFilter Field:=gbTarihColumn, _
Criteria1:=">=" & Format(startDateGB, "yyyy-mm-dd")
End If
' Gümrük Beyanname Tarihi için bitiş tarihini uygula
If TextBox4.Value <> "" Then
If Not IsDate(TextBox4.Value) Then
MsgBox "Lütfen geçerli bir bitiş tarihi girin (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
endDateGB = DateValue(TextBox4.Value)
tbl.Range.AutoFilter Field:=gbTarihColumn, _
Criteria1:="<=" & Format(endDateGB, "yyyy-mm-dd")
End If
Exit Sub
ErrorHandler:
MsgBox "Hata oluştu: " & Err.Description, vbCritical
End Sub
Ekte bulunan örnek dosyada UserForm uzerınde Combobox ve Textbox kullanarak filtreleme yapnak istedim.
Combobox lar su anki durumda tam anlamıyla çalışmaktadırlar. Ancak Textbox lar ıle tarıh aralığına göre filtrelemeyı bırturlu
çalıştıramadım. Textbox lar içinde ayrıca bır kod yazabıldım ( Aşağıda kodları sizlere yazıyorum ) ama bu kodları genel dosyadaki kodun içine entegre edip hepsını userform da birarada çalıştıramadım. ( Bu halıyle ayrı olarak çalışmaktadırlar..)
Sizlerden ricam Combobox ve Textbox ları bırarada filtrelemede kullanabılmem için butun kodları bırlestırmemde yardımcı olmanızı rica ediyorum.
Saygılarımla;
Skaan
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim sasTarihColumn As Integer
Dim startDateSAS As Date, endDateSAS As Date
On Error GoTo ErrorHandler
' Çalışma sayfası ve tabloyu ayarla
Set ws = ThisWorkbook.Sheets("Rapor")
Set tbl = ws.ListObjects("Tablo1")
' SAS Tarihi sütununu al
On Error Resume Next
sasTarihColumn = Application.Match("SAS Tarihi", tbl.HeaderRowRange, 0)
On Error GoTo 0
If IsError(sasTarihColumn) Or sasTarihColumn <= 0 Then
MsgBox "SAS Tarihi başlığı bulunamadı!", vbCritical
Exit Sub
End If
' Tarihleri kontrol et
If TextBox1.Value = "" Or TextBox2.Value = "" Then
MsgBox "Lütfen SAS Tarihi için başlangıç ve bitiş tarihlerini girin.", vbExclamation
Exit Sub
End If
If Not IsDate(TextBox1.Value) Or Not IsDate(TextBox2.Value) Then
MsgBox "Geçerli bir tarih giriniz (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
' Tarihleri al
startDateSAS = DateValue(TextBox1.Value)
endDateSAS = DateValue(TextBox2.Value)
' SAS Tarihi aralığına göre filtre uygula
tbl.Range.AutoFilter Field:=sasTarihColumn, _
Criteria1:=">=" & Format(startDateSAS, "yyyy-mm-dd"), Operator:=xlAnd, _
Criteria2:="<=" & Format(endDateSAS, "yyyy-mm-dd")
Exit Sub
ErrorHandler:
MsgBox "Hata oluştu: " & Err.Description, vbCritical
End Sub
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Dim tbl As ListObject
Dim gbTarihColumn As Integer
Dim startDateGB As Date, endDateGB As Date
On Error GoTo ErrorHandler
' Çalışma sayfası ve tabloyu ayarla
Set ws = ThisWorkbook.Sheets("Rapor")
Set tbl = ws.ListObjects("Tablo1")
' Gümrük Beyanname Tarihi sütununu al
On Error Resume Next
gbTarihColumn = Application.Match("Gümrük Beyanname Tarihi", tbl.HeaderRowRange, 0)
On Error GoTo 0
If IsError(gbTarihColumn) Or gbTarihColumn <= 0 Then
MsgBox "Gümrük Beyanname Tarihi başlığı bulunamadı!", vbCritical
Exit Sub
End If
' Gümrük Beyanname Tarihi için başlangıç tarihini uygula
If TextBox3.Value <> "" Then
If Not IsDate(TextBox3.Value) Then
MsgBox "Lütfen geçerli bir başlangıç tarihi girin (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
startDateGB = DateValue(TextBox3.Value)
tbl.Range.AutoFilter Field:=gbTarihColumn, _
Criteria1:=">=" & Format(startDateGB, "yyyy-mm-dd")
End If
' Gümrük Beyanname Tarihi için bitiş tarihini uygula
If TextBox4.Value <> "" Then
If Not IsDate(TextBox4.Value) Then
MsgBox "Lütfen geçerli bir bitiş tarihi girin (gg.aa.yyyy).", vbExclamation
Exit Sub
End If
endDateGB = DateValue(TextBox4.Value)
tbl.Range.AutoFilter Field:=gbTarihColumn, _
Criteria1:="<=" & Format(endDateGB, "yyyy-mm-dd")
End If
Exit Sub
ErrorHandler:
MsgBox "Hata oluştu: " & Err.Description, vbCritical
End Sub
Ekli dosyalar
-
125.1 KB Görüntüleme: 4