• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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
 
"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.
 
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

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.
 
çok ilginç. sizde çalıştığı gibi bende çalışmıyor.
Acaba neyden kaynaklanıyor olabilir?
 
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.
 
maalesef şirket bilgisayarı olduğu için bu gibi bir imkanım yok. IT de kod kaynaklıdır diye ilgilenmiyor
 
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

çok bilinçli değil ama makro atamak yerine modules ekleyerek yaptım bir önceki mesajımdaki ektede görebilirsiniz.
 
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?
 
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
 
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?
 
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.
 
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
 
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

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:
Geri
Üst