Macroda iki tarih arasını süzme

Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
üstadlar ve arkadaşlar. ekte göndermiş olduğum dosyada. raporlama sayfasında iki tarih arasında süzme yaptırmak istiyorum. Macroyu da yazdım ancak bir türlü istediğim sonuca ulaşamadım. Başlangıç tarihi ve Bitiş tarihini girip ara butonuna tıkladığımda bana KAYITLAR sayfasında o iki tarih arasındaki satırları süzmesini istiyorum. Şimdiden yardım ve ilginiz için teşekkür ederim.
 
Son düzenleme:

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Forumda DOSYA EKLEME ile DOSYA İNDİRME işlemleri için ve yayınlanan Video Dersleri izleyebilmek için ALTIN ÜYELİK gerekmektedir.
Örnek dosyanızı burada paylaşmak için dosya yükleme sitelerine yükleyip, burada link verebilirsiniz.

. . .
 
Katılım
20 Şubat 2012
Mesajlar
244
Excel Vers. ve Dili
office2007 Türkçe
Merhaba

Örnek makro.Kendinize uyarlayabilirsiniz.

Sub İKİTARİHARASI()
Dim Baslangıctarihi As Long, Bitistarihi As Long
Baslangıctarihi = Range("A1").Value
Bitistarihi = Range("A2").Value

'B3 TE BAŞLIĞINIZ OLDUĞUNU VARSAYARSAK
'B4 ve aşağı doğru tarihler olduğunu varsayarak

Range("B3:B100").AutoFilter field:=1, _
Criteria1:=">=" & Baslangıctarihi, _
Operator:=xlAnd, _
Criteria2:="<=" & Bitistarihi
'Kopyalama yapmak istenirse
'Range("B4", Cells(Rows.Count, "B").End(xlUp)).Resize(, 3).Copy
End Sub
 
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
Seçilen tarihleri rakkam olarak atıyor

Konu ile ilgili dosyayı ekliyorum. DTPicker olmadığı için tarihleri manuel giriyorum. Ancak girdiğim tarihleri süzme işlemi yaparken rakkam olarak atıyor 42124 gibi ve ayrıca tarih tanımlaması yapsamda süzme işlemi yapmıyor. Eklediğim dosyayı incelerseniz ve yardımcı olursanız sevinirim.
 

Ekli dosyalar

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
Konu ile ilgili dosyayı ekliyorum. DTPicker olmadığı için tarihleri manuel giriyorum. Ancak girdiğim tarihleri süzme işlemi yaparken rakkam olarak atıyor 42124 gibi ve ayrıca tarih tanımlaması yapsamda süzme işlemi yapmıyor. Eklediğim dosyayı incelerseniz ve yardımcı olursanız sevinirim.
. . .

Öneri:
Dosya açılışında Userform ile açılmayı iptal edip, açılmayı butonu bağlayın.
Userformdaki çıkış butonu ve X ile kapatma kodlarını iptal ederek.
Örnek dosyanızı güncellemizde fayda var.

http://www.excel.web.tr/f59/rnek-dosya-hazyrlarken-dikkat-edilmesi-gerekenler-t134225.html

. . .
 
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
Düzeltme

Söylediğiniz gibi user form olarak açılmasını iptal işlemini yaptım. Dosyayı yeniden ekledim. Sorunu tekrar kısaca aktarayım; KAYIT sayfasında bulunan POLİÇE KESİLME TARİHİ sütunundaki tarihleri RAPORLAMA User formunda ki BAŞLANGIÇ TARİHİ ve BİTİŞ TARİHİ TextBox kutularına girmiş olduğum tarihler bazında süzmesini istiyorum. Ancak bu kısımlara tarihleri girdiğimde bu işlem gerçekleşmiyor. ( DTPicker, ToolBox da kayıtlı değil bu nedenle manuel olarak tarihleri giriyorum ) Konuyla ilgili yardım ederseniz sevinirim üstadım. İlginiz için teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
Acil

Sayın Üstadlar ve Arkadaşlar, bu konu hakkında acil yardımlarınızı bekliyorum.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

K2 ve L2 hücrelerindeki ALTTOPLAM formül sonuçlarını tabloda başka bir alanda kullanıyor musunuz.

. . .
 
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
K2 VE L2 ALTTOPLAMLARI şimdilik kullanmıyorum ancak, süzmeden sonra net ve srüt toplamları alacağım için lazım olacaktır. gerçi fark etmez başka bir yerde de toplayabilirim üstadım.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Filtre yerine satır gizleme yönetimini kullandım.
Tüm satırları tekrar göstermek için bir buton daha ekledim.
Brüt ve Net toplamlarını K2 L2 hücrelerine ve Label13 Labe14' e yazdırdım.

. . .
 

Ekli dosyalar

Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
Üstadım çok güzel olmuş. Ellerinize ve emeğinize sağlık. Çok teşekkür ediyorum ilgi alakanız için.
 
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
İlgi ve alakanıza teşekkür ederim.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Sheets("KAYIT").Select
Range("F2") = bastar.Text
Range("G2") = bttar.Text
'
Dim basla As Long
Dim bitis As Long
Dim FF As Long
Dim brut As Single
Dim net As Single

brut = 0: net = 0
basla = CDate(Range("F2"))
bitis = CDate(Range("G2"))

Cells.EntireRow.Hidden = False

For i = 4 To [A65536].End(3).Row
    FF = CDate(Cells(i, "F"))
    
    If FF >= basla And FF <= bitis Then
        brut = brut + Cells(i, "K")
        net = net + Cells(i, "L")

[B][COLOR="SeaGreen"]''' KODLARDA TANIMLADIĞIMIZ SİGORTA TÜRLERİ, TABLOYA GİRİLEN İLE AYNI OLMALI. '''[/COLOR][/B]
If Cells(i, "N") = "KASKO" Then
Bkasko = Bkasko + Cells(i, "K")
Nkasko = Nkasko + Cells(i, "L")

ElseIf Cells(i, "N") = "ARAÇ SİGORTASI" Then
Baracsigortası = Baracsigortası + Cells(i, "K")
Naracsigortası = Naracsigortası + Cells(i, "L")

ElseIf Cells(i, "N") = "FERDİ KAZA" Then
Bferdikaza = Bferdikaza + Cells(i, "K")
Nferdikaza = Nferdikaza + Cells(i, "L")

ElseIf Cells(i, "N") = "DASK" Then
Bdask = Bdask + Cells(i, "K")
Ndask = Ndask + Cells(i, "L")

ElseIf Cells(i, "N") = "EV SİGORTASI" Then
Bevsigortası = Bevsigortası + Cells(i, "K")
Nevsigortası = Nevsigortası + Cells(i, "L")


ElseIf Cells(i, "N") = "İŞYERİ" Then
Bişyeri = Bişyeri + Cells(i, "K")
Nişyeri = Nişyeri + Cells(i, "L")

ElseIf Cells(i, "N") = "SEYAHAT" Then
Bseyahat = Bseyahat + Cells(i, "K")
Nseyahat = Nseyahat + Cells(i, "L")

ElseIf Cells(i, "N") = "YEŞİL SİGORTA" Then
Byeşil = Byeşil + Cells(i, "K")
Nyeşil = Nyeşil + Cells(i, "L")

ElseIf Cells(i, "N") = "SAĞLIK SİGORTASI" Then
Bsaglık = Bsaglık + Cells(i, "K")
Nsaglık = Nsaglık + Cells(i, "L")

ElseIf Cells(i, "N") = "KOLTUK FERDİ" Then
Bkoltukferdi = Bkoltukferdi + Cells(i, "K")
Nkoltukferdi = Nkoltukferdi + Cells(i, "L")

ElseIf Cells(i, "N") = "YANGIN" Then
Byangın = Byangın + Cells(i, "K")
Nyangın = Nyangın + Cells(i, "L")

ElseIf Cells(i, "N") = "MESLEKİ SORUMLULUK" Then
Bmesleki = Bmesleki + Cells(i, "K")
Nmesleki = Nmesleki + Cells(i, "L")

ElseIf Cells(i, "N") = "TAŞIMACILIK MAL.MES" Then
Btaşımacılık = Btaşımacılık + Cells(i, "K")
Ntaşımacılık = Ntaşımacılık + Cells(i, "L")

ElseIf Cells(i, "N") = "KONUT" Then
Bkonut = Bkonut + Cells(i, "K")
Nkonut = Nkonut + Cells(i, "L")
End If
[COLOR="SeaGreen"]'''[/COLOR]
    Else
        Rows(i).EntireRow.Hidden = True
    End If
Next i

[B][COLOR="SeaGreen"]''' FORMUN SAĞ TARAFINA BURADAN YAZDIRIYORUZ '''[/COLOR][/B]
Range("K2") = brut: Range("L2") = net
Label13.Caption = brut: Label14.Caption = net
Label17.Caption = Bkasko: Label44.Caption = Nkasko
Label19.Caption = Baracsigortası: Label45.Caption = Naracsigortası
Label21.Caption = Bferdikaza: Label46.Caption = Nferdikaza
Label23.Caption = Bdask: Label47.Caption = Ndask
Label25.Caption = Bevsigortası: Label48.Caption = Nevsigortası:
Label27.Caption = Bişyeri: Label49.Caption = Nişyeri
Label29.Caption = Bseyahat: Label50.Caption = Nseyahat
Label31.Caption = Byeşil: Label51.Caption = Nyeşil
Label33.Caption = Bsaglık: Label52.Caption = Nsaglık
Label35.Caption = Bkoltukferdi: Label53.Caption = Nkoltukferdi
Label37.Caption = Byangın: Label54.Caption = Nyangın
Label39.Caption = Bmesleki: Label55.Caption = Nmesleki
Label41.Caption = Btaşımacılık: Label56.Caption = Ntaşımacılık
Label43.Caption = Bkonut: Label57.Caption = Nkonut

[B][COLOR="SeaGreen"]''' BRUT + NET TOPLAMINI, SİGORTA TÜRLERİ TOPLAMI İLE KARŞILAŞTIRIYORUZ. FARK VARSA YANLIŞ YAZILAN SİGORTA TÜRÜ VARDIR.[/COLOR][/B]
TOPLAM1 = brut + net
TOPLAM2 = Bkasko + Baracsigortası + Bferdikaza + Bdask + Bevsigortası + Bişyeri + Bseyahat + Byeşil + Bsaglık + Bkoltukferdi + Byangın + Bmesleki + Btaşımacılık + Bkonut + _
          Nkasko + Naracsigortası + Nferdikaza + Ndask + Nevsigortası + Nişyeri + Nseyahat + Nyeşil + Nsaglık + Nkoltukferdi + Nyangın + Nmesleki + Ntaşımacılık + Nkonut
If Format(TOPLAM1, "00.00") <> Format(TOPLAM2, "00.00") Then
MsgBox " Toplamlarda HATA var." & Chr(10) & _
"Sigorta Türü verilerini kontrol edin.", vbCritical
Exit Sub
End If
[COLOR="SeaGreen"]'''[/COLOR]
End Sub
. . .
 
Katılım
27 Aralık 2006
Mesajlar
254
Excel Vers. ve Dili
Excel Visual Basic 6.0
Altın Üyelik Bitiş Tarihi
09.07.2019
Örnek Dosya Ekte

. . .

Kod:
Private Sub CommandButton1_Click()
On Error Resume Next
Sheets("KAYIT").Select
Range("F2") = bastar.Text
Range("G2") = bttar.Text
'
Dim basla As Long
Dim bitis As Long
Dim FF As Long
Dim brut As Single
Dim net As Single

brut = 0: net = 0
basla = CDate(Range("F2"))
bitis = CDate(Range("G2"))

Cells.EntireRow.Hidden = False

For i = 4 To [A65536].End(3).Row
    FF = CDate(Cells(i, "F"))
    
    If FF >= basla And FF <= bitis Then
        brut = brut + Cells(i, "K")
        net = net + Cells(i, "L")

[B][COLOR="SeaGreen"]''' KODLARDA TANIMLADIĞIMIZ SİGORTA TÜRLERİ, TABLOYA GİRİLEN İLE AYNI OLMALI. '''[/COLOR][/B]
If Cells(i, "N") = "KASKO" Then
Bkasko = Bkasko + Cells(i, "K")
Nkasko = Nkasko + Cells(i, "L")

ElseIf Cells(i, "N") = "ARAÇ SİGORTASI" Then
Baracsigortası = Baracsigortası + Cells(i, "K")
Naracsigortası = Naracsigortası + Cells(i, "L")

ElseIf Cells(i, "N") = "FERDİ KAZA" Then
Bferdikaza = Bferdikaza + Cells(i, "K")
Nferdikaza = Nferdikaza + Cells(i, "L")

ElseIf Cells(i, "N") = "DASK" Then
Bdask = Bdask + Cells(i, "K")
Ndask = Ndask + Cells(i, "L")

ElseIf Cells(i, "N") = "EV SİGORTASI" Then
Bevsigortası = Bevsigortası + Cells(i, "K")
Nevsigortası = Nevsigortası + Cells(i, "L")


ElseIf Cells(i, "N") = "İŞYERİ" Then
Bişyeri = Bişyeri + Cells(i, "K")
Nişyeri = Nişyeri + Cells(i, "L")

ElseIf Cells(i, "N") = "SEYAHAT" Then
Bseyahat = Bseyahat + Cells(i, "K")
Nseyahat = Nseyahat + Cells(i, "L")

ElseIf Cells(i, "N") = "YEŞİL SİGORTA" Then
Byeşil = Byeşil + Cells(i, "K")
Nyeşil = Nyeşil + Cells(i, "L")

ElseIf Cells(i, "N") = "SAĞLIK SİGORTASI" Then
Bsaglık = Bsaglık + Cells(i, "K")
Nsaglık = Nsaglık + Cells(i, "L")

ElseIf Cells(i, "N") = "KOLTUK FERDİ" Then
Bkoltukferdi = Bkoltukferdi + Cells(i, "K")
Nkoltukferdi = Nkoltukferdi + Cells(i, "L")

ElseIf Cells(i, "N") = "YANGIN" Then
Byangın = Byangın + Cells(i, "K")
Nyangın = Nyangın + Cells(i, "L")

ElseIf Cells(i, "N") = "MESLEKİ SORUMLULUK" Then
Bmesleki = Bmesleki + Cells(i, "K")
Nmesleki = Nmesleki + Cells(i, "L")

ElseIf Cells(i, "N") = "TAŞIMACILIK MAL.MES" Then
Btaşımacılık = Btaşımacılık + Cells(i, "K")
Ntaşımacılık = Ntaşımacılık + Cells(i, "L")

ElseIf Cells(i, "N") = "KONUT" Then
Bkonut = Bkonut + Cells(i, "K")
Nkonut = Nkonut + Cells(i, "L")
End If
[COLOR="SeaGreen"]'''[/COLOR]
    Else
        Rows(i).EntireRow.Hidden = True
    End If
Next i

[B][COLOR="SeaGreen"]''' FORMUN SAĞ TARAFINA BURADAN YAZDIRIYORUZ '''[/COLOR][/B]
Range("K2") = brut: Range("L2") = net
Label13.Caption = brut: Label14.Caption = net
Label17.Caption = Bkasko: Label44.Caption = Nkasko
Label19.Caption = Baracsigortası: Label45.Caption = Naracsigortası
Label21.Caption = Bferdikaza: Label46.Caption = Nferdikaza
Label23.Caption = Bdask: Label47.Caption = Ndask
Label25.Caption = Bevsigortası: Label48.Caption = Nevsigortası:
Label27.Caption = Bişyeri: Label49.Caption = Nişyeri
Label29.Caption = Bseyahat: Label50.Caption = Nseyahat
Label31.Caption = Byeşil: Label51.Caption = Nyeşil
Label33.Caption = Bsaglık: Label52.Caption = Nsaglık
Label35.Caption = Bkoltukferdi: Label53.Caption = Nkoltukferdi
Label37.Caption = Byangın: Label54.Caption = Nyangın
Label39.Caption = Bmesleki: Label55.Caption = Nmesleki
Label41.Caption = Btaşımacılık: Label56.Caption = Ntaşımacılık
Label43.Caption = Bkonut: Label57.Caption = Nkonut

[B][COLOR="SeaGreen"]''' BRUT + NET TOPLAMINI, SİGORTA TÜRLERİ TOPLAMI İLE KARŞILAŞTIRIYORUZ. FARK VARSA YANLIŞ YAZILAN SİGORTA TÜRÜ VARDIR.[/COLOR][/B]
TOPLAM1 = brut + net
TOPLAM2 = Bkasko + Baracsigortası + Bferdikaza + Bdask + Bevsigortası + Bişyeri + Bseyahat + Byeşil + Bsaglık + Bkoltukferdi + Byangın + Bmesleki + Btaşımacılık + Bkonut + _
          Nkasko + Naracsigortası + Nferdikaza + Ndask + Nevsigortası + Nişyeri + Nseyahat + Nyeşil + Nsaglık + Nkoltukferdi + Nyangın + Nmesleki + Ntaşımacılık + Nkonut
If Format(TOPLAM1, "00.00") <> Format(TOPLAM2, "00.00") Then
MsgBox " Toplamlarda HATA var." & Chr(10) & _
"Sigorta Türü verilerini kontrol edin.", vbCritical
Exit Sub
End If
[COLOR="SeaGreen"]'''[/COLOR]
End Sub
. . .
Örnek dosya ektedir.
 

Ekli dosyalar

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,893
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
. . .

Dosyanız ektedir.

Hatanız Sigorta türlerinin farklı olmasından kaynaklanıyor.
Örneğin kodlarda "İŞYERİ SİGORTASI" sigortası olarak tanımlamışız. Ancak tabloda "İŞ YERİ SİGORTASI" olarak kullanılmış. (boşluk var)

Tabloya TADİLAT SİGORTASI ilave edilmiş ancak kodlamaya ve forma ilave edilmemiş.

Tabloda birkaç revize işlemi yaptım.
Sigorta türü seçimini veri doğrulamaya bağladım, Veri sayfasından alacak.
Veri sayfasında Ad tanımlama kullandım.

. . .
 

Ekli dosyalar

Üst