VBA ile yapılmış olan dosyaya tarihe göre yazdırma seçeneği hk.

Katılım
3 Eylül 2024
Mesajlar
4
Excel Vers. ve Dili
Office 365 64bit
Herkese merhabalar,
Mevcut olan VBA ile yapılmış olan bir excel dosyası mevcut. Bu excel dosyasında misafirlerin yada personellerin araç kullanımlarının kayıt altına tutulmakta.
Bu kayıtları resimde gördüğünüz gibi görüntüleyebilmekteyiz. Arka planda bir excel dosyasına kayıt olmakta.
Bu veriler her ay sonu aylık filtrelenerek ekran görüntüsü alarak müdüriyet tarafına gönderilmekte. İlk başlarda 2 3 ekran görüntüsü ile mail atıyorken şimdi 9-10 ekran görüntüsüne ulaştı ve bu zamanlada artmaya devam etmekte.

Benden istenilen bu ekran görüntüsü ile rapor vermeyi sonlandırmak ve bunları normal bir excel formatında mail göndermek.

Resimdeki userformda ay olarak filtreleme mevcut. Filtreleme yaptıktan sonra bir button ekleyip o filtrelenen verileri dışa nasıl aktarabilirim yada yazdırabilirmiyim?
Yardımlarınızı rica ediyorum.
Teşekkürler

Userform screen
 
Katılım
6 Mart 2024
Mesajlar
70
Excel Vers. ve Dili
Excel 2013 TR & Excel 2016 TR
Merhaba,

Kodların özeti:
Yeni bir Excel sayfası oluştur
Bu sayfaya ListBox verilerini yaz
Sayfayı PDF e dönüştür.
yeni oluşturup içine verileri yazdığımız Excel sayfasını SİL.

C++:
Private Sub RaporButton_Click()
    ' Geçici sayfayı oluştur ve referans al
    Dim tempSheet As Worksheet
    Set tempSheet = Sheets.Add(After:=ActiveSheet)

    Dim i As Integer
    Dim sutunSayisi As Integer
    sutunSayisi = 7 ' ListBox'taki sütun sayısı

    For i = 0 To Me.MyListBoxName.ListCount - 1 ' ListBox adını(MyListBoxName) doğru referanslayın
        For j = 0 To sutunSayisi - 1 ' 0 dan başlandığı için -1 çıkarıyoruz
            tempSheet.Cells(i + 1, j + 1).Value = Me.MyListBoxName.List(i, j) ' ListBox adını(MyListBoxName) doğru referanslayın
        Next j
    Next i

    ' Sayfayı Rapor.pdf ismiyle aktif olan Excel dosyasının olduğu klasöre kaydet ve aç
    tempSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\Rapor.pdf", OpenAfterPublish:=True ' OpenAfterPublish:=False Dosyayı açmaz

    ' Sayfayı silerken uyarıyı kapat
    Application.DisplayAlerts = False
    tempSheet.Delete ' sayfayı sil
    Application.DisplayAlerts = True

    ' Bellek temizliği
    Set tempSheet = Nothing

End Sub
Ben PDF dosyası yaptım siz Excel dosyası da yapabilirsiniz
Hatta bu dosyayı direk mail atabilirsiniz artık isteğinize göre değişir.

Oluşan Rapor.pdf dosya Dizaynını daha düzgün olmasını isterseniz
manuel olarak :
Dizaynı düzgün bir Şablon sayfası yaparsınız

vba kodlarla da :
ilk Şablon sayfasını Kopyalayıp, verileri buraya yazıp, Rapor.pdf kaydedip, kopyayı silersiniz
Şablon sayfanız hali hazırda tertemiz bekler
 
Son düzenleme:
Üst