Farklı sayfalarda set kullanım hatası

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Aşağıdaki kodlarda Rapor sayfasindaki a2 hücresini s2 olarak set yaptım fakat işlemi a2 hücresinde olan değere göre yapmıyor. A2 hücresinde ay isimleri var. her ay çalışma sayfası olarak kayıtlıdır. Sayfalar toplam ( rapor , ocak , şubat , vs ) olarak 13 çalışma sayfasıdır.

Kod:
sub makro1()

dim s1, s2 as range, worksheet

set s1 = sheets("rapor")
set s2 = sheets("rapor").range("a2")

s2.range("b4:t500")autofilter field:=2 , criteria1:=">=" & clng (cdate (s1.range("d2"))), operator:=xland, crireria2:="<=" & clng (cdate (s1.range("e2")))

if s1.range("b2") <> empty then
s2.range("b4:t500").autofilter field:=7, criteria1:=s1.range("b2")
End if

if s1.range("c2") <> empty then
s2.range("b4:t500").autofilter field:=7, criteria1:=s1.range("c2")
End if

if s1.range("a7") <> empty then
s2.range("b4:t500").autofilter field:=7, criteria1:=s1.range("a7")
End if

End sub
 
Son düzenleme:

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Düzeltme
Kod:
sub makro1()

dim s1, s2 as range, worksheet

set s1 = sheets("rapor")
set s2 = sheets("rapor").range("a2")

s2.range("b4:t500")autofilter field:=2 , criteria1:=">=" & clng (cdate (s1.range("d2"))), operator:=xland, crireria2:="<=" & clng (cdate (s1.range("e2")))

if s1.range("b2") <> empty then
s2.range("b4:t500").autofilter field:=8, criteria1:=s1.range("b2")
End if

if s1.range("c2") <> empty then
s2.range("b4:t500").autofilter field:=9, criteria1:=s1.range("c2")
End if

if s1.range("a7") <> empty then
s2.range("b4:t500").autofilter field:=10, criteria1:=s1.range("a7")
End if

End sub
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Konu hakkında yardımcı olabilirmisiniz.
 

Korhan Ayhan

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

İlk olarak tanımlama satırınız hatalı...

dim s1, s2 as range, worksheet


Bu şekilde olmalı..

Dim S1 As Worksheet, S2 As Worksheet


Setleme işlemini de aşağıdaki gibi yapmalısınız.

Set S1 = Sheets("rapor")
Set S2 = Sheets(S1.Range("A2").Text)
 

kadir78

Altın Üye
Katılım
6 Nisan 2016
Mesajlar
227
Excel Vers. ve Dili
office 2019
Altın Üyelik Bitiş Tarihi
30-12-2026
Korhan hocam çok teşekkür ederim. Allah razı olsun. Elinize emeğinize sağlık olsun inşallah.
 
Üst