I

Soru Otomatik Filtreleme Yaptıktan Sonra PDF Yaptırma

ikayserili

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba

bi konu hakkında çözüm yapamadım mevcut sizlerin paylaştığı kodlardan. Bana yardımcı olurmusunuz lütfen.
Ana sayfada bulunan bir butonum var. bu buton mevcut makroyu (Diğer sayfaları PDF yapıyor) çalıştırıyor.
Makro'nun başına;

2 sayfanın X3 hücresine filtre ekledim. sadece 1 olanları sayfada olması gerekiyor. boş olanları sayfada gözükmemesi gerekiyor.
3 sayfanın H1 hücresine filtre ekledim. sadece 1 olanları sayfada olması gerekiyor. boş olanları sayfada gözükmemesi gerekiyor.
4 sayfanın S3 hücresine filtre ekledim. sadece 1 olanları sayfada olması gerekiyor. boş olanları sayfada gözükmemesi gerekiyor.
sayfalarındaki otomatik filtreleme yaptırmak istiyorum.

örnek olarak şu kod'u denedim;
Sheets2.Selection.AutoFilter Field:=24, Criteria1:="<>"
ama hata vermektedir. bu sayfa için bu kod çalışsa idi diğer sayfaları da buna göre yapacaktım.
Yani yapmak istediğim, sayfaları PDF yapmadan önce boş olan satırları kapatıp o şekilde PDF yapması.
örnek ek ektedir.
 

Ekli dosyalar

Sayın @ikayserili .

Bilgi Giriş sayfası dışındaki sayfalarda (tümünde) uyguladığınız filtre ( 1 yazdığınız satırlar görünür olacak şekilde)
uygulandıktan sonra gönürür hücrelerden ouşan pdf belgeler oluturmak istiyorsunuz anlaşılan.
Tabi koşulunuz da ilgili sütunda 1 değeri yoksa o sayfa için pdf oluşturulmaması doğru mudur?

.
 
Ömer Bey
Kod'u sizinle paylaştığım excel'e kopyaladım sadece 1 adet sayfa oluşturuyor.
sizinle paylaştığım excel'de ki filtreli sayfalarda illaki 1 olan satır olacak ve illaki boş olan satırlarda kesin olacak. PDF'e çevirmeden önce boş satırları kapatıp PDF yapmasını istiyorum.
Yazdığınız kodların daha sade hali yok mudur ? Çünkü 17 adet daha sayfam var ve diğer sayfalarda filre yapılacak bir durum yok. Yani toplam 21 adet PDF oluşturuyordum bunun 3 tanesine filtre uygulamak istedim.
 
PDF olarak kaydedilecek tüm sayfalar için YAZDIRMA ALANI oluşturulduğu varsayımıyla,
adı Bilgi Girişi olmayan tüm sayfaları
(filtre uygulanmışsa, yazdırma alanının filtre sonucunda kalan satırlarını, filtre uygulanmamışsa ayarlanmış yazdırma alanının bütününü)
PDF olarak kaydeder.

CSS:
Görüntülemek için giriş yapmanız gerekmektedir.
(16 satır)

.
 
Sheets(Sheets(X).Name).Range("Print_Area").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=Yol & "\" & Sheets(X).Name & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

bu kod'a hata alıyorum :(
 
Sayın @ikayserili .

İlk verdiğim cevapta, yapıları / filtre sütunları birbirinden farklı mevcut sayfalara uygun kod yazmıştım.
Verdiğim kod da bu üç sayfada ilgili sütunlarda 1 değerine göre filtreleme yapıp, kalan satırları
(tabi ilgili sayfanın belirttiğiniz sütunlarında 1 sayısı hiç yoksa o sayfa için işlem PDF işlemi dışı kalır) PDF olarak kaydediyor.

İkinci verdiğim kod ise Bilgi Girişi sayfası hariç tüm sayfaların yazdırma alanları
(son kod cevabımda, sayfalar için yazdırma alanlarının tanımlanmış olması gerektiğini belirtmiştim) PDF olarak kaydediyor.
Bu cevapta, filtreleme (artık hangi sayfaların hangi sütunlarında neye göre filtre uygulamışsanız),
yazdırma alanı içinde kalan satır varsa bu sayfayı PDF işlemine tabi tutar, filtreleme sonucunda satır kalmamışsa işlem yapmaz.
Bir sayfa için yazdırma alanı tanımlanmamışsa doğal olarak işlem yapılmayacaktır.

Ne istediğinizi anlayamadım doğrusu, ilk cevabım filtre uygulayıp PDF yapıyor, ikincisi ise mevcut durumda
yazdırma alanında görünür kalan satır varsa PDF yapıyor.
Deneme yapmadan cevap yazma alışkanlığım yok. Hata ekranını (ilgili sayfa da görünecek şekilde) iletin isterseniz.

Ayrıca, hem tüm sayfalar (kodda sayfa ismi vs vermeden) için filtrelemeyi de makro yapsın diye düşünüyorsanız, hangi sayfanın hangi sütununda filtre uygulanması gerektiği nereden bilinecek? Yani ya tüm sayfalar için filtre sütunlarını ve filtre kriterlerini ilk örnek belgedeki gibi açıklayacaksınız ve ilk kod tüm sayfaları içine alacak şekilde düzenenecek ya da filtreleri elle uygulayacaksınız ve
ikinci kod seçeneği kullanılacak.
Tavsiye: sayfaların tümünde tabloların AYNI SATIRdan başlamasını, filtre sütunu olarak tüm sayfalar için ortak bir sütun (örneğin tüm sayfalarda Z sütunu filtre uygulanacak sütun olması gibi) belirlenmesi, tüm ayfaların filtre kriterinin de TEK (örnekte BOŞ OLMAYAN) olacak şekilde belinlenmesi kodlama ve kodların anlaşılmasını kolaylaştırır.

.
 
Üst