Skip to main content

AccessTr.neT


Kapalı Excel Dosyasındaki Sayfayı Access Aracılığı İle Pdf'ye Çevirme

Kapalı Excel Dosyasındaki Sayfayı Access Aracılığı İle Pdf'ye Çevirme

Çözüldü #1
Merhaba arkadaşlar, elimde Excel bünyesinde kullanılan gayet sağlıklı çalışan aşağıda belirttiğim kod bloğu var, klasör oluşturup sayfayı pdf ye çeviriyor ve klasöre atıyor. benim Excel sürümümde sıkıntı olduğundan artık exceli kullanmamaya, bu işlemi de Excel kapalı olacak şekilde Access Vba ile yaptırmayı düşünüyorum, yani yine exceli kullanmış olacağım ama kapalı olacak, excelin içindeki sayfayı Access Vba ile pdf ye çevireceğim, biraz kafa yordum ama aşağıdaki kodda ne gibi değişiklik yapmam gerektiğini çözemedim, bu konuda yardımlarınızı bekliyorum, rica ediyorum, teşekkürler.

'Klasör Olusturma
Dim dosyayolu As String, KLS As Object, Klasor As Object, dosya As Object ', 'i As Long
'For i = 2 To Cells(Rows.Count, 1).End(3).Row
dosyayolu = ThisWorkbook.Path



Set KLS = CreateObject("scripting.filesystemobject")
Set Klasor = KLS.GetFolder(dosyayolu)
'For Each dosya In Klasor.Files
On Error Resume Next
KLS.createfolder (dosyayolu & "\" & Me.avansYili)
'Next dosya
'Next i
On Error Resume Next
Set KLS = CreateObject("scripting.filesystemobject")
KLS.createfolder (dosyayolu & "\" & Me.avansYili & "\" & Me.konusu)

On Error Resume Next
Set KLS = CreateObject("scripting.filesystemobject")
KLS.createfolder (dosyayolu & "\" & Me.avansYili & "\" & Me.konusu & "\" & Me.avansMutemediAdiSoyadi)







ActiveWorkbook.Save
With Worksheets("hizmetIsleriKabulTutanagi")
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=dosyayolu & "\" & Me.avansYili & "\" & Me.konusu & "\" & Me.avansMutemediAdiSoyadi & "\" & _
            .Name & ".pdf", OpenAfterPublish:=True
    End With

    Set KLS = Nothing: Set Klasor = Nothing: Set dosya = Nothing: dosyayolu = vbNullString
MsgBox "Klasörler oluşturuldu"
Son Düzenleme: 24/08/2022, 08:50, Düzenleyen: tarkanaykın.
Cevapla
#2
Sunu öğrenmek istiyorum; kapalı bir Excel dosyasının sayfalarını pdf olarak kaydedebilir miyiz. Ancak açarak yapabildim yukarıdaki kodlari revize ederek. Ama ecelin görünür veya görünmez, herhangi bir şekilde açılmasını istemiyorum. Bilindigi üzere connection nesnesi araciligi ile kayit seti alabiliyoruz, lakin herhangi bir nesne uzerinde bir değişiklik vesaire yapamıyoruz. Bunun bi yolu olmalı.
Son Düzenleme: 24/08/2022, 17:16, Düzenleyen: tarkanaykın.
Cevapla
#3
Yapmaya çalıştığınız iş süreklilik arz eden bir proje gibi. Peki Access Vba kullanmaya karar verdiyseniz neden bütün projeyi Access'e taşımıyorsunuz. Yapmak istediklerinizi çok daha zahmetsiz ve doğru ortamda yapmış olursunuz, neden illa excel?
Oluşturmak istediğiniz pdf için aklıma gelen en hızlı çözüm excelden ADO ile istediğiniz kayıtları alıp rapor halinde pdf olarak basmak olur.
Cevapla
#4
Sayın atoykan, Access gerçekten çok iyi bir uygulama, hakimiyet saglama ve yapilabilecekler konusunda gayet yeterli, ama Access su konuda yetersiz; word tipi bir belge oluşturmak, yani ben rapor tasarımından bir word belgesi olusturulacagini sanmiyorum, cok uğraştım olmuyor,rapor tasarımı sadece bir kayitlar sonucudur, ne cizgi tablo eklenebiliyor ne satirbasi ne de vesaire... ama excelden harika bir word sablonu olusturulabiliyor, word ile hiç calismam cunku kaymalar tasmalar oluyor, en saglami excelde hazırlayıp pdf ye cevirmek, Excel cok sıkıntı çıkarıyor, bu yüzden onu açmadan icinde islemler yapıp sayfayi da pdf olarak export etmek istiyorum ve bunu da Access ile yapmam gerekiyor, ilginize teşekkürler, var mi bi yolu, kapalı bir Excel dosyasından bir sayfayi pdf olarak export etmenin?
Cevapla
#5
@tarkanaykın Beyefendi merhaba. Evvelce pdf olarak kaydetmek ile ilgili kod araştırırken şöyle bir koda denk gelmiştim size fikir verebilir. Tam olarak istediğiniz olmayabilir bilemiyorum ben kodları arşivime Excel açmadan pdf olarak kaydet diye saklamışım.

İşinize yaramasını umar, esenlikler dilerim.

Saygılarımla

Murtaza AF


Sub ExportAPDF_and_SaveAsXLSX()

    Dim wsThisWorkSheet As Worksheet
    Dim objFileSystemObject As New Scripting.FileSystemObject

    Dim strFileName As String
    Dim strBasePath As String

    ' NEW
    Dim strMasterWorkbookFilename As String
    strMasterWorkbookFilename = ThisWorkbook.FullName

    strBasePath = "M:\formats\"
    strFileName = Range("H8")

    On Error GoTo errHandler

    Set wsThisWorkSheet = ActiveSheet

    wsThisWorkSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=strBasePath & strFileName, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

        MsgBox "PDF file has been created."

        Application.DisplayAlerts = False
        strFileName = objFileSystemObject.GetBaseName(strFileName) & ".xlsx"
        wsThisWorkSheet.SaveAs Filename:=strBasePath & strFileName, FileFormat:=xlOpenXMLWorkbook
        wsThisWorkSheet.Shapes("Button 8").Delete
        ActiveWorkbook.Save

        Application.DisplayAlerts = False

        MsgBox "Workbook now saved in XLSX format."

        ' NEW
        Workbooks.Open strMasterWorkbookFilename
        Workbooks(strFileName).Close SaveChanges:=False


    exitHandler:
            Exit Sub
    errHandler:
            MsgBox "Error Saving file.  The error is " & vbCrLf & Chr(34) & Err.Description & Chr(34)

            Resume exitHandler

End Sub
Son Düzenleme: 24/08/2022, 21:56, Düzenleyen: MURTAZAAF. (Sebep: imla hatalarını düzeltmek)
Cevapla
#6
Cok teşekkür ederim sayin MURTAZAAF bi inceledim de biraz karmaşık ve bazı kodlar yabanci geldi, fonksiyonlarını bilmediğim kodlar, bi bakayım bunlardan bir sey cikarabilirsem burada paylaşayım sorunumun çözümünü, teşekkürler, saygılar bizden, kolay gelsin.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task