VBA PDF Kaydederken Bazı Satırları Atlamak

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi

Kısa Açıklama

VBA PDF Kaydederken Bazı Satırları Atlamak isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Ekli dosyalar
Moderatörün son düzenlenenleri:
Merhabalar Sn. @merakli;
Modul1 içerisinde bulunan kodları aşağıdaki kodlar ile değiştirip kullanabilirsiniz.

-- Kod içerisinde bulunan bu kısım, Liste sayfasında B sütununda bulunan hücrelerin satırlarını gizler ve sonradan PDF kaydet kodlarına geçer.
Bu şekilde boş satırlar PDF dosyasına alınmamış olur.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(3 satır)

-- yol = "C:\Users\" & Environ("UserName") & "\Downloads\"
Satırı da oluşturulan PDF dosyanın kayıt edileceği klasör yoludur. Bu satırda İndirilenler (Downloads) klasörüne kayıt aldım, bu satırı çalışmanıza göre değiştiriniz.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(18 satır)
 
Birde şöyle bir durum var
Boş satırlardan bir önceki dolu satır (örneğe göre 52. satır)
ile
Boş satırlardan sonraki dolu satır (örneğe göre 59. satır)
bu satırlar örnekteki gibi sabit değil bu çizelgeden onlarca var ve her çizelgede listedeki isimler ile boş satır sayısı değişken

denedim sanki üstteki döngü burada bahsettiğim işlemi yapıyor gibi :)

dediğiniz gibi satırları gizliyor gibi peki pdf kaydetme işleminden sonra bu satırları yine eski durumuna getirmek için nasıl bir işlem yapmalıyız

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


bu tarz bir şey çözer mi denemeden yazıyorum
 
Moderatörün son düzenlenenleri:
Dosyanın kaydedileceği dizini Excel dosyasının bulunduğu dizin olarak ayarlasak ne gibi bir değişiklik yapmalıyız
-- yol isimli değişkeni aşağıdaki satır ile değiştirmeniz yeterlidir.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

her çizelgede listedeki isimler ile boş satır sayısı değişken
-- Her listenin yapısı aynı ise yani resimdeki gibiyse.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
satırı ile A sütunundaki son dolu satır numarası bulunur.
Örnek listede 61. satır.
-3 ifadesi ile (Ortalama - Net - Yüzde) değerleri sabit olduğu için son dolu satır numarasından bu 3 satırı işleme almaması için çıkartıyoruz.
Yani döngü 5. satır ile 58. satır arasında işlem yapar.
Diğer listelerde de bu şekilde çalışır.

1620156884433.webp
-- Boş hücrelerin tespiti ise, yine her dosyada boş satırlar örnek dosyanızda olduğu gibiyse
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
bu satır ile koşul içine alınır ve B sütunundaki boş hücreler gizlenir.
Ama B sütunu dolu diğer hücreler boş ise bu satırlar gizlenmez.

pdf kaydetme işleminden sonra bu satırları yine eski durumuna getirmek için nasıl bir işlem yapmalıyız
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
satırından sonra
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
satırını ekleyiniz. Bu satır sayfada gizli olan tüm satırları açar.
 
Moderatörün son düzenlenenleri:
Eksik paylaşımdan dolayı, yanlış yol aldık.
İsterseniz konu bütünlüğünü korumak için, Asıl kullandığınız kodlar ve dosya ile yeni bir konu açın, sorunuzun cevabı yeni konu üzerinden devam etsin. Bu konuyu da kilitleriz.
 
-- İlk mesajdaki örnek dosyanıza göre denedim!

7 numaralı mesajda paylaştığınız kodda bulunan
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
satırından sonra aşağıdaki satırları ekleyiniz.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(4 satır)
 
-- İlk mesajdaki örnek dosyanıza göre denedim!

7 numaralı mesajda paylaştığınız kodda bulunan
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
satırından sonra aşağıdaki satırları ekleyiniz.
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(4 satır)
Örnek dosyayı basit olması açısından seçmiştim. Ancak gerçek dosyaya bunu adapte etmeye çalıştığımda üstteki sorunlarla karşılaştım bundan dolayı şuan kullandığımı belirttiğim kodları paylaşmıştım.
 
Orjinal dosya bu şekilde.

PDF kaydetme olayı ve boş satırları göstermeme olayı 8/A, 8/B, 8/C, 8/D, 8/E ve Tüm sayfaları için geçerli olacak

Screenshot_3.webp
 
Ekli dosyalar
Moderatörün son düzenlenenleri:
Sayın @merakli , sınıf sayfaları için 27, Tümü sayfası için 28 sütunluk yapı sabit midir?
Yani NET sayısını gösteren sütunun konumu belli ise, dolu/boş kontrolünün bu sütunda yapılması yerinde olur.

Bu konuyu netleştirdikten sonra;
mevcut PDF oluşturma kodunun aşağıda XXXX yazdığım kısmına, boş/dolu kontrolüne bağlı
birkaç satırlık kod ilavesi yapılarak istediğiniz sonuca ulaşılabilir.

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


.
 
O zaman mevcut PDF kayıt makrosunda,
bir önceki cevabımda XXX diye işaretlediğim kısma aşağıdaki satırları eklemeniz yeterli olur gibi görünüyor.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(5 satır)
 
@Ömer BARAN Bey

Diyelim ki 8E sayfasında öğrenci isimlerinin karşısında (D9:W16) hiç veri yok.
Bu durumda o sayfayı (8E) pdf yapılacak sayfaların dışında tutabilir miyiz?

aşağıdaki gibi
If XD.Name <> "Veri" And XD.Name <> "Liste" And XD.Name <> "Ortalama" And XD.Name <> "Data" And XD.Name <> "8E" Then

gibi

SORU.webp
 
Ekli dosyalar
Moderatörün son düzenlenenleri:
Vakit çok geç oldu.
Uygun vakitte bakarım.
Tabi tüm sayfalarda birden bu durum gerçekleşirse PDF hiç oluşturulmayacak demek onu da dikkate alacak şekilde günelleme gerekir (işlemin eksiksiz olması bakımından).
 
Geri
Üst