VBA PDF Kaydederken Bazı Satırları Atlama

VBA PDF Kaydederken Bazı Satırları Atlama

  • Konuyu başlatan Konuyu başlatan merakli
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
28 Tem 2022
Mesajlar
748
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba,
Örnek dosyada ve resimde gösterildiği gibi listenin altında boş satırları almadan alttaki satırla devam edecek şekilde PDF kaydetmek mümkün müdür?

soru.webp
 

Ekli dosyalar

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:
İndirmek 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:
İndirmek için giriş yapmanız gerekmektedir.
(18 satır)
 
Teşekkürler inceliyorum.
Dosyanın kaydedileceği dizini excel dosyasının bulunduğu dizin olarak ayarlasak ne gibi bir değişiklik yapmalıyız
 
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:
İndirmek için giriş yapmanız gerekmektedir.
(9 satır)


bu tarz bir şey çözer mi denemeden yazıyorum
 
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:
İndirmek 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:
İndirmek 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:
İndirmek 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:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
satırından sonra
VBA:
İndirmek 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.
 
Aşağıda kullandığım kodlar var.
Bu kodları @Ömer BARAN bey oluşturmuştu
Bu kodlar içerisine onu adapte etmeye çalıştım ama çorba oldu :(

VBA:
İndirmek için giriş yapmanız gerekmektedir.
(32 satır)
 
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:
İndirmek için giriş yapmanız gerekmektedir.
(1 satır)
satırından sonra aşağıdaki satırları ekleyiniz.
VBA:
İndirmek 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

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:
İndirmek 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:
İndirmek için giriş yapmanız gerekmektedir.
(5 satır)
 
(y)Türkçe'si net olarak anlaşıldıktan,
sorular gerçek belgeyle aynı yapıda örnek belgeler üzerinden sorulduktan sonra
Excelce'si de oluşturulur mutlaka.

Kolay gelsin.

.
 
@Ö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

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).
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst Alt