Sayfayı pdf formatında buton ile kaydetme

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
386
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merhaba değerli hocalarım.
Örnek dosya ekliyorum. 100 den fazla sayfadan oluşan bir excel dosyasında Ana sayfada bulunan alanda sayfa numarası yer alıyor. Bu sayfa numarasını baz alarak butona bastığımda o sayfaya gitmeden pdf olarak kaydettirme yapabilir miyiz?

Şimdiden teşekkür ediyorum.
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,623
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    Dim pth$, sh$
    pth = ThisWorkbook.Path & "\"
    sh = Sheets("Sheet1").Range("C8").Value
    Sheets(sh).ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
                                   Filename:=pth & sh & ".pdf"
End Sub
 
Katılım
27 Mayıs 2024
Mesajlar
7
Excel Vers. ve Dili
Microsoft® Excel® für Microsoft 365 MSO (Version 2308 ) 32 Bit
Sub aktiveSeiteAlsPDFSpeichern()

' Den Dateinamen und den Speicherort festlegen
Dim dateiname As String
Dim pfad As String
dateiname = "Anwesenheit"
pfad = "C:\Arsiv" ' Ändern Sie diesen Pfad nach Ihren Wünschen

' Aktuelles Datum als String formatieren
Dim datumString As String
datumString = Format(Date, "yyyyMMdd") ' Format: JJJJMMTT

' Den Dateinamen mit dem Datum erstellen
Dim dateiname2 As String
dateiname2 = dateiname & "_" & datumString & ".pdf" ' Dateiname und Erweiterung anpassen

' Bereich A1 bis M16 als PDF exportieren
ThisWorkbook.Worksheets("Anwesenheit IT").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad & "\" & dateiname2

' Optional: PDF-Datei in einem neuen Fenster öffnen
' Application.FollowHyperlink pfad & "\" & dateiname2

End Sub

Bu sekilde belirli bir alani bilgisayara Pdf seklinde kaydedebiliyorum ancak internette bir ortak alan dosyasina kaydetmek icin nasil bir yol izlemeliyim sizce?
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
511
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Sub aktiveSeiteAlsPDFSpeichern()

' Den Dateinamen und den Speicherort festlegen
Dim dateiname As String
Dim pfad As String
dateiname = "Anwesenheit"
pfad = "C:\Arsiv" ' Ändern Sie diesen Pfad nach Ihren Wünschen

' Aktuelles Datum als String formatieren
Dim datumString As String
datumString = Format(Date, "yyyyMMdd") ' Format: JJJJMMTT

' Den Dateinamen mit dem Datum erstellen
Dim dateiname2 As String
dateiname2 = dateiname & "_" & datumString & ".pdf" ' Dateiname und Erweiterung anpassen

' Bereich A1 bis M16 als PDF exportieren
ThisWorkbook.Worksheets("Anwesenheit IT").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pfad & "\" & dateiname2

' Optional: PDF-Datei in einem neuen Fenster öffnen
' Application.FollowHyperlink pfad & "\" & dateiname2

End Sub

Bu sekilde belirli bir alani bilgisayara Pdf seklinde kaydedebiliyorum ancak internette bir ortak alan dosyasina kaydetmek icin nasil bir yol izlemeliyim sizce?
YUkardaki makronuz, "Anwesenheit IT" adlı çalışma sayfasının A1:Q16 alanını her gün otomatik olarak PDF formatında kaydetmekte olup,
her gün için ayrı bir Anwesenheit_YYYYMMDD.pdf isim formatında bir dosya oluşturmaktadır.

' ...

Dim ortakAlanURL As String
Dim klasorAdi As String
ortakAlanURL = "https://ortak-alan-adresi/klasor-adi/"
klasorAdi = "" 'klasör adı varsa buraya girmeyi unutmayınız

Dim dosyaYolu As String
dosyaYolu = ortakAlanURL & klasorAdi & "\" & dateiname2

Dim istek As Object
Set istek = CreateObject("MSXML2.XMLHTTP")
istek.Open "PUT", dosyaYolu
istek.SetRequestBody ActiveWorkbook.Worksheets("Anwesenheit IT").Range("A1:Q16").ExportAsFixedFormat(Type:=xlTypePDF)
istek.Send

MsgBox "Dosya başarıyla ortak alana kaydedildi!" Deneyiniz.
 
Katılım
27 Mayıs 2024
Mesajlar
7
Excel Vers. ve Dili
Microsoft® Excel® für Microsoft 365 MSO (Version 2308 ) 32 Bit
YUkardaki makronuz, "Anwesenheit IT" adlı çalışma sayfasının A1:Q16 alanını her gün otomatik olarak PDF formatında kaydetmekte olup,her gün için ayrı bir Anwesenheit_YYYYMMDD.pdf isim formatında bir dosya oluşturmaktadır.' ...Dim ortakAlanURL As StringDim klasorAdi As StringortakAlanURL = "https://ortak-alan-adresi/klasor-adi/"klasorAdi = "" 'klasör adı varsa buraya girmeyi unutmayınızDim dosyaYolu As StringdosyaYolu = ortakAlanURL & klasorAdi & "\" & dateiname2Dim istek As ObjectSet istek = CreateObject("MSXML2.XMLHTTP")istek.Open "PUT", dosyaYoluistek.SetRequestBody ActiveWorkbook.Worksheets("Anwesenheit IT").Range("A1:Q16").ExportAsFixedFormat(Type:=xlTypePDF)istek.SendMsgBox "Dosya başarıyla ortak alana kaydedildi!" Deneyiniz.
Bu sekilde denedik ancak sonuc vermiyor. Worksheet kisminda hata vermekte.Users belirtilerek yazildiginda calismakta.

ThisWorkbook.Worksheets("Anwesenheit IT1").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\Users\BKU\faruk\Firma Ismi\Technische Anlagen - Dokumente\General\01 OPEX Board\Archiv\Anwesenheit IT 1\test.pdf" bu sekilde calisiyor.

ThisWorkbook.Worksheets("Anwesenheit IT1").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:="sharepoint link" seklinde calismiyor.
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
511
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Eğer SharePoint gibi bir sistem kullanıyorsanız, dosyaları SharePoint'e yüklemek için SharePoint'in sağladığı API'leri kullanmanız gerekebilir
Bu nedenle, SharePoint üzerinde dosya yükleme işlemleri için resmi belgelere başvurmanız ve uygun API'leri kullanmanız gerekecektir.

dosya yolunu değiştirseniz olmuyormu
pfad = "\\sunucu\paylaşılan_klasör"
 
Son düzenleme:
Katılım
27 Mayıs 2024
Mesajlar
7
Excel Vers. ve Dili
Microsoft® Excel® für Microsoft 365 MSO (Version 2308 ) 32 Bit
Eğer SharePoint gibi bir sistem kullanıyorsanız, dosyaları SharePoint'e yüklemek için SharePoint'in sağladığı API'leri kullanmanız gerekebilir
Bu nedenle, SharePoint üzerinde dosya yükleme işlemleri için resmi belgelere başvurmanız ve uygun API'leri kullanmanız gerekecektir.

dosya yolunu değiştirseniz olmuyormu
pfad = "\\sunucu\paylaşılan_klasör"
ThisWorkbook.Worksheets("Anwesenheit IT1").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\Users\BKU\faruk\Firma Ismi\Technische Anlagen - Dokumente\General\01 OPEX Board\Archiv\Anwesenheit IT 1\test.pdf" bu sekilde calisiyor.

Ama bu tek kullanicida oluyor baska kullanicilar arsivleyemiyor
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
511
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Eğer dosyaları bir ağ ortamında paylaşıyorsanız, bu dosyaları paylaşılan bir ağ konumuna kaydetmek, birden fazla kullanıcının erişebilmesi için daha uygun olabilir. Dosya yolu olarak tek bir kullanıcının yerel yolunu kullanmak, diğer kullanıcılar için erişim sorunlarına yol açabilir çünkü her kullanıcının bu yolu aynı şekilde paylaşması veya erişmesi mümkün olmayabilir.

Bunun yerine, dosyaları bir ağ paylaşımına kaydetmeyi düşünebilirsiniz. Örneğin, ağdaki bir sunucuya veya paylaşılan bir klasöre dosyaları kaydedebilirsiniz. Bu şekilde, tüm kullanıcılar aynı dosya yolu üzerinden erişebilir ve dosyaları güncelleyebilir.

Örnek :
Dim dosyaYolu As String dosyaYolu = "\\sunucu\paylaşılan_klasör\test.pdf" ThisWorkbook.Worksheets("Anwesenheit IT1").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:=dosyaYolu

Bu kod, belirtilen sunucudaki paylaşılan klasöre "test.pdf" adıyla PDF dosyası olarak kaydeder. Tüm kullanıcılar aynı ağa bağlı oldukları sürece bu dosyaya erişebilirler. Ancak, kullanıcıların bu klasöre yazma izinleri olduğundan emin olmalısınız. Eğer dosya yazılabilir değilse, kullanıcılar dosyayı güncelleyemezler.

Ayrıca, bazı durumlarda ağ paylaşımlarının erişim izinleri doğru şekilde yapılandırılmalıdır. Kullanıcılar dosyalara erişmek için gerekli izinlere sahip olmalıdır. Bu nedenle, ağ yöneticinizle veya sistem yöneticinizle iletişime geçerek uygun erişim izinlerini sağlamak önemlidir.
 
Katılım
27 Mayıs 2024
Mesajlar
7
Excel Vers. ve Dili
Microsoft® Excel® für Microsoft 365 MSO (Version 2308 ) 32 Bit
Eğer dosyaları bir ağ ortamında paylaşıyorsanız, bu dosyaları paylaşılan bir ağ konumuna kaydetmek, birden fazla kullanıcının erişebilmesi için daha uygun olabilir. Dosya yolu olarak tek bir kullanıcının yerel yolunu kullanmak, diğer kullanıcılar için erişim sorunlarına yol açabilir çünkü her kullanıcının bu yolu aynı şekilde paylaşması veya erişmesi mümkün olmayabilir.

Bunun yerine, dosyaları bir ağ paylaşımına kaydetmeyi düşünebilirsiniz. Örneğin, ağdaki bir sunucuya veya paylaşılan bir klasöre dosyaları kaydedebilirsiniz. Bu şekilde, tüm kullanıcılar aynı dosya yolu üzerinden erişebilir ve dosyaları güncelleyebilir.

Örnek :
Dim dosyaYolu As String dosyaYolu = "\\sunucu\paylaşılan_klasör\test.pdf" ThisWorkbook.Worksheets("Anwesenheit IT1").Range("A1:Q16").ExportAsFixedFormat Type:=xlTypePDF, Filename:=dosyaYolu

Bu kod, belirtilen sunucudaki paylaşılan klasöre "test.pdf" adıyla PDF dosyası olarak kaydeder. Tüm kullanıcılar aynı ağa bağlı oldukları sürece bu dosyaya erişebilirler. Ancak, kullanıcıların bu klasöre yazma izinleri olduğundan emin olmalısınız. Eğer dosya yazılabilir değilse, kullanıcılar dosyayı güncelleyemezler.

Ayrıca, bazı durumlarda ağ paylaşımlarının erişim izinleri doğru şekilde yapılandırılmalıdır. Kullanıcılar dosyalara erişmek için gerekli izinlere sahip olmalıdır. Bu nedenle, ağ yöneticinizle veya sistem yöneticinizle iletişime geçerek uygun erişim izinlerini sağlamak önemlidir.
Tesekkür ederim deneyecegim.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
386
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Kod:
Sub test()
    Dim pth$, sh$
    pth = ThisWorkbook.Path & "\"
    sh = Sheets("Sheet1").Range("C8").Value
    Sheets(sh).ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
                                   Filename:=pth & sh & ".pdf"
End Sub
Sayın Veysel Bey, çok teşekkür ediyorum. çok güzel oldu.
Geliştirmek adına 2 ekleme yapabilir miyiz? Mümkünmüdür?
1. "B2" hücresine yazdığın veriyi dosya adı olarak alıp kaydetmesi.
2. pdf dosyalarını istediğim yere kaydettirebilir miyim?

şimdiden teşekkürler
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,623
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    Dim pth$, sh$, fName$
    pth = ThisWorkbook.Path & "\"
    'pth = "D:\YEDEK\PDF\"         ' Üstteki satırı bu şekilde değiştirebilirsiniz..
    fName = Sheets("Sheet1").Range("B2").Value
    sh = Sheets("Sheet1").Range("C8").Value
    Sheets(sh).ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
                                   Filename:=pth & fName & ".pdf"
End Sub
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
386
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Kod:
Sub test()
    Dim pth$, sh$, fName$
    pth = ThisWorkbook.Path & "\"
    'pth = "D:\YEDEK\PDF\"         ' Üstteki satırı bu şekilde değiştirebilirsiniz..
    fName = Sheets("Sheet1").Range("B2").Value
    sh = Sheets("Sheet1").Range("C8").Value
    Sheets(sh).ExportAsFixedFormat Type:=xlTypePDF, Quality:=xlQualityStandard, _
                                   Filename:=pth & fName & ".pdf"
End Sub
Çok teşekkür ederim.
 
Üst