PDF kaydet butonu çalışmıyor

Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
Merhaba arkadaşlar,

daha önce burdan bulduğum ve kendi dosyama uyarladığım bir PDF kaydetme kodu vardı. 1-2 gün öncesine kadar çalışıyordu. Şu an butona tıklıyorum makro çalışmadığı gibi butonuda sayfanın başka bir yerine atıyor ve kullanım dışı kalıyor.

Bu süre zarfında şirketimiz sonunda xp den win7ye geçiş yaptı. Excel versiyonu değişmedi. Aslında excel de gerekli makro ayarlarını yaptım fakat çalıştıramadım.
Dosya şirket verileri içerdiği için paylaşamıyorum fakat makro kodu aşağıdaki gibidir.

Bir fikri olan varmı?

Kod:
Private Sub PDF_Click()
dosya_adı = ActiveWorkbook.Name

'xls dosyasında hangi aralığın PDF'ye dönüştürüleceğini belirledik yani B1:I52
Range("Yazdırma_Alanı").Select


' PDF dosyasını isimlendirmek için ad tanımlıyoruz:
Servis_adi = Sheets("Cockpit").Range("B4").Value
Yil = Sheets("Cockpit").Range("D23").Value
Ay = Sheets("Cockpit").Range("B25").Value

' PDF dosyası oluşturuyoruz.
' PDF'nin kayıt yeri XLS dosyası neredeyse orada olacak.

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Application.ThisWorkbook.Path & "\" & Servis_adi & "_ " & Ay & Yil & strdate, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

'OpenAfterPublish:=True değerini False seçersek kayıt sonrası PDF otomatik açılmayacak.
End Sub

Private Sub CommandButton1_Click()

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
"Cockpit" sayfasında bazı verilere göre PDF dosyanız oluşuyor. Bu hücrelerdeki verileriniz tam ise kodun çalışmaması için bir sebep görünmüyor.

Kodu F8 tuşu ile adım adım çalıştırıp hata veren satırı tespit edebilirsiniz.
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
cevap için teşekkürler.
F8 tuşu ile de hiç bir hata tespiti olmadı.

Buton bazen çalışıyor fakat çalıştıktan sonra buton kendini kopyalıyor sayfanın herhangi biryerine ve işlem dışı kalıyor.
dosyanın içeriğini silerek ekledim.

umarım problemi daha açık görebilirsiniz
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kodlar pdf dosyasını oluşturup açıyor. Butona ikinci kez bastığınızda pdf dosyası açık olduğu için hata veriyor. Sizin yaşadığınız sorunda bununla ilgili olabilir.
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
çok ilginç. sizde çalıştığı gibi bende çalışmıyor.
Acaba neyden kaynaklanıyor olabilir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kullanmış olduğunuz 2007 versiyonla alakalı bir durumda olabilir. TeamViewer kullanıyorsanız bağlantı şifrelerini özel mesaj ile yollarsanız uzaktan bağlanıp yardımcı olabilirim.
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
maalesef şirket bilgisayarı olduğu için bu gibi bir imkanım yok. IT de kod kaynaklıdır diye ilgilenmiyor
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
problemi bir şekilde hallettim.
Kod da bir değişiklik yapmak istiyorum.
Örnek dosyası ektedir.
B4 sütununda listeden birini seçtiğim taktirde ona ait verileri veritabanından getiriyor.
tek bir butona bastığımda listede yer alan tüm seçeneklere, ayrı ayrı PDF oluşturmak için koda ne gibi bir eklenti yapmam gerekiyor?
 

Ekli dosyalar

Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
çok bilinçli değil ama makro atamak yerine modules ekleyerek yaptım bir önceki mesajımdaki ektede görebilirsiniz.
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
Kod da bir değişiklik yapmak istiyorum.
Örnek dosyası ektedir.
B4 sütununda listeden birini seçtiğim taktirde ona ait verileri veritabanından getiriyor.
tek bir butona bastığımda listede yer alan tüm seçeneklere, ayrı ayrı PDF oluşturmak için koda ne gibi bir eklenti yapmam gerekiyor?
bu konuda yardımcı olabilirmisiniz?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kodu deneyiniz.

Kod:
Sub PDF_KAYDET()
    Dim S1 As Worksheet, Yol As String, Servis_Adi As String
    Dim Yil As String, Ay As String, X As Byte
    
    Application.ScreenUpdating = False
    
    Set S1 = Sheets("Cockpit")
    
    For X = 2 To 18
        S1.Range("B4") = S1.Cells(X, "AM")
        Servis_Adi = S1.Range("B4")
        Yil = S1.Range("D23")
        Ay = S1.Range("B25")

        S1.Range("Yazdırma_Alanı").ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\" & Servis_Adi & "_" & Ay & "_" & Yil, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next

    Set S1 = Nothing

    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
Korhan bey çok teşekkür ederim.
deneme dosyamda çalışıyor şimdi asıl dosyaya uyarlamaya çalışıyorum.

Dim S1 As Worksheet

ifadesi ne anlama geliyor? S1 B4 hücresindeki S1 mi?
ve
S1.Range("B4") = S1.Cells(X, "AM")

burdaki (X,"AM") neyi ifade ediyor?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,326
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
S1 "Cockpit" isimli sayfanızı ifade ediyor. Yani bir tanımlamadır.

"AM" sütununda veri doğrulamada kullanılan veriler bulunuyor. Bunları döngüye alıp işlem yaptırdım. "X" ise döngüye alınan satır numaralarını ifade etmektedir.
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
S1 "Cockpit" isimli sayfanızı ifade ediyor. Yani bir tanımlamadır.

"AM" sütununda veri doğrulamada kullanılan veriler bulunuyor. Bunları döngüye alıp işlem yaptırdım. "X" ise döngüye alınan satır numaralarını ifade etmektedir.
Teşekkür ederim ana dosyama uyarladım ve çalışıyor. Elinize sağlık
 
Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
Merhabalar,
4 sene önceki bir konu hakkında desteğinizi rica ediyorum.
bu kod ile dosyanın bulunduğu klasör içine PDFler kayıt oluyordu.
ne gibi bir revizyon yapmam gerekiyor ki, dosyanın bulunduğu klasörün içine B25 hücresinde bulunan ayın isminden bir klasör oluştursun ve PDFleri bu klasörün içine kayıt etsin..

Aşağıdaki kodu deneyiniz.

Kod:
Sub PDF_KAYDET()
    Dim S1 As Worksheet, Yol As String, Servis_Adi As String
    Dim Yil As String, Ay As String, X As Byte
    
    Application.ScreenUpdating = False
    
    Set S1 = Sheets("Cockpit")
    
    For X = 2 To 18
        S1.Range("B4") = S1.Cells(X, "AM")
        Servis_Adi = S1.Range("B4")
        Yil = S1.Range("D23")
        Ay = S1.Range("B25")

        S1.Range("Yazdırma_Alanı").ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=ThisWorkbook.Path & "\" & Servis_Adi & "_" & Ay & "_" & Yil, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    Next

    Set S1 = Nothing

    Application.ScreenUpdating = True

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

Ekli dosyalar

Katılım
27 Mart 2012
Mesajlar
113
Excel Vers. ve Dili
2010 Almanca
Necdet hocanın paylaştığı kod ile hallettim. kendim istediğim klasörde dosya oluşturabiliyorum.

Tabi eğer klasör seçme yerine dosyada seçilen ilgili ay'ın ismiyle otomatik oluşturulan bir klasörün içine pdfleri kayıt edecek bir kod varsa onu kullanmayı tercih ederim.


Merhaba,

Alternatif olsun.
Kod:
Public BsKlasor As String
Kod:
Sub KlasorOlustur()

    Dim Klasor1     As String, _
        klasor2     As String, _
        i           As Long
        
    KlasorSec "Necdet"
    BsKlasor = BsKlasor & Application.PathSeparator
    
    For i = 1 To Cells(Rows.Count, "A").End(3).Row
        If Not Klasor1 = Cells(i, "B") Then
            Klasor1 = Cells(i, "B")
            MkDir BsKlasor & Klasor1
            klasor2 = ""
        Else
            If Not klasor2 = Cells(i, "C") Then
                klasor2 = Cells(i, "C")
                MkDir BsKlasor & Klasor1 & Application.PathSeparator & klasor2
            End If
        End If
    Next i
    
    MsgBox "İşlem Tamamlanmıştır...."
    
End Sub
Kod:
Sub KlasorSec(Necdet As String)

    Dim fdBrowser As FileDialog

    Set fdBrowser = Application.FileDialog(msoFileDialogFolderPicker)
    
    With fdBrowser
    
        'İlk kullanıma aç
        .Title = "Klasör Seçiniz"
        .InitialFileName = "C:\"
        
        'İletişim Kutusunu Göster
        If .Show Then
            BsKlasor = .SelectedItems(1)
        End If
        
    End With

End Sub
 
Son düzenleme:
Üst