Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > EXCEL-Soruları > Makro-VBA
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
Dosya ekleyebilirsiniz

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 17-02-2017, 11:54   #1
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan Yazdırılan sayfayı PDF olarak kaydetmek?

Merhaba;
Birden fazla şablonumun bulunduğu bir dosyam var. Her sayfa, çıktı alındığında tek sayfa olarak çıkmaktadır. Ben yazdırdığım her sayfanın ya da önceden belirleyeceğim sayfaların, excel kitabının bulunduğu klasöre PDF olarak otomatik kaydetmesini istiyorum. Böyle birşey mümkün müdür?

Mümkün ise, kaydetme şu şekilde olabilir mi?
Yazdırılan sayfanın adı ile bir klasör açıp, belirtilen hücrelerdeki isim ve tarihi dosya adı olarak kaydetsin.

Yada sizin öneriniz nedir?

Teşekkürler, iyi çalışmalar..
Eklenmiş Dosyalar
Dosya Türü: xlsm sablonlar.xlsm (25.5 KB, 6 Görüntülenme)
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-02-2017, 13:43   #2
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan

Excel'in kendi makro kaydet özelliği ile bir yazdır butonu oluşturup aşağıdaki kod ile dosya adında kaydetmeyi yaptım. Yalnız burada şöyle 2 sorunum var;

1- Bu kod varsayılan yazıcıya direk yazdırıyor, ben farklı bir yazıcıdan çıktı almak isteyebilirim. Bunun için kodun ben CTRL+P ile yazdır dedikten sonra aktif olması gerekiyor.

2- Kırmızı ile belirtilen dosya adının yerine; Excelin bulunduğu klasörde, yazdırılan ilgili sayfanın adında bir klasör var ise onun içine ilgili hücrelerin adları ile kayıt etmesi, yok ise ilgili sayfanın adına bir klasör oluşturup ilgili hücrelerin adları ile kayıt etmesi.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub YazdırPDF()
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\ebulut\Desktop\Dekont.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
End Sub
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-02-2017, 14:26   #3
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan

Tekrar merhaba

Yazdırma sorununu ve dosyaya isim verme sorununu halletim. Tek sıkıntım şuanda excel dosyasının bulunduğu dosyaya yazdırılan aktif sayfa adında bir klasör oluşturup, PDF'i onun içine kaydetmesi..


Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub YazdırPDF()
Dim sh As Worksheet
Set sh = ActiveSheet
yol = ThisWorkbook.Path
isim = sh.Range("B3").Value & "-" & Format(Now, "yyyy-mm-dd-hh-mm")

Application.Dialogs(xlDialogPrint).Show

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol _
& "\" & isim & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Save
End Sub
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-02-2017, 14:59   #4
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan

Biraz kendi kendime konuşuyor gibi oluyorum farkındayım ama kurcaladıkça birşeyler çıkıyor
Klasöre isim verme olayını da halletim ama şöyle bir sıkıntım var. İlgili sayfa adında bir klasör yoksa ise problem yok kod çalışıyor, klasörü oluşturuyor ve kayıt işlemini yapıyor.
Ama ilgili sayfa adında klasör var ise aşağıda kırmızı ile belittiğim alanda hata veriyor bu klasörden olduğu için..

Buraya bir if sorgusu gerekiyor sanırım, aynı sayfa adından varsa klasör oluşturma yoksa ise oluştur gibi.. Bunu nasıl çözebilirim ?


Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub YazdırPDF()
Dim sh As Worksheet
Set sh = ActiveSheet
Set ds = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path & "\" & ActiveSheet.Name
isim = sh.Range("B3").Value & " - " & Format(Now, "yyyy-mm-dd-hh-mm")

Application.Dialogs(xlDialogPrint).Show

ds.CreateFolder yol

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol _
& "\" & isim & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Save
End Sub
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 17-02-2017, 15:41   #5
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan

Şuanda hiçbir problem kalmamıştır çalışan kod aşağıdaki gibidir..

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub YazdırPDF()
Dim sh As Worksheet
Set sh = ActiveSheet
Set ds = CreateObject("Scripting.FileSystemObject")
yol = ThisWorkbook.Path & "\" & ActiveSheet.Name
isim = sh.Range("B3").Value & " - " & Format(Now, "yyyy-mm-dd-hh-mm")

Application.Dialogs(xlDialogPrint).Show

kontrol = ds.FolderExists(yol)
If kontrol <> True Then
ds.CreateFolder yol
End If

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=yol _
& "\" & isim & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

ActiveWorkbook.Save
End Sub
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-02-2017, 15:19   #6
cevdet2727
 
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013
Varsayılan

Merhabalar,
bir excel çalışmam var.
içinde 6 çalışma sayfası var.
bunlardan 3 tanesine girilen veriler sonucunda diğer 3 ünde veriler ve tablolar oluşuyor.

a - b - c - d - e - f

d-e-f veri alanları

a-b-c sonuç tablo olanlar

a sayfasına koyacağın bir PDF yap butonu ile

a-b-c sayfalarını tek bir pdf e çevirmek ve a sayfası içinde bir kutucuktaki veriyi dosya adı olarak PDF şeklinde kayıt etmesini istiyorum. ancak makro kodunu bir türlü beceremedim.

yardımcı olan olursa sevinirim.

Teşekkür
cevdet2727 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 21-02-2017, 15:32   #7
tirEdsOuL
Altın Üye
 
tirEdsOuL kullanıcısının avatarı
 
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 284
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013
Varsayılan

Alıntı:
cevdet2727 tarafından gönderildi Mesajı Görüntüle
Merhabalar,
bir excel çalışmam var.
içinde 6 çalışma sayfası var.
bunlardan 3 tanesine girilen veriler sonucunda diğer 3 ünde veriler ve tablolar oluşuyor.

a - b - c - d - e - f

d-e-f veri alanları

a-b-c sonuç tablo olanlar

a sayfasına koyacağın bir PDF yap butonu ile

a-b-c sayfalarını tek bir pdf e çevirmek ve a sayfası içinde bir kutucuktaki veriyi dosya adı olarak PDF şeklinde kayıt etmesini istiyorum. ancak makro kodunu bir türlü beceremedim.

yardımcı olan olursa sevinirim.

Teşekkür
örnek dosya eklerseniz belki yardımcı olabilirim.
tirEdsOuL Çevrimdışı   Alıntı Yaparak Cevapla
Eski 22-02-2017, 08:56   #8
cevdet2727
 
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013
Varsayılan

Merhabalar,
örnek dosya yükleme alanını bulamadım. nasıl yükleniyor.
tşk
cevdet2727 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 22-02-2017, 09:22   #9
cevdet2727
 
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013
Varsayılan

ekledim


https://drive.google.com/file/d/0B0-...RHT2czTVU/view
cevdet2727 Çevrimdışı   Alıntı Yaparak Cevapla
Eski 22-02-2017, 09:35   #10
Korhan Ayhan
Moderatör
 
Korhan Ayhan kullanıcısının avatarı
 
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 21,599
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR
Varsayılan

Deneyiniz.

Dosya yolunu kendinize göre düzenlersiniz.

Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Sub Pdf_Kaydet()
    Sheets(Array("DEBİT", "DEBİT DTY", "DEBİT1")).Select
    Sheets("DEBİT").Activate
    Yol = "C:\Users\Desktop\" & Sheets("DEBİT").Range("G3").Value & ".PDF"
    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, Filename:=Yol, _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=False
    Sheets("DEBİT").Select
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
__________________
.
.
.

Soru sormadan önce forumumuzun aşağıdaki
bölümlerini incelediğinizde birçok sorunuza yanıt bulabilirsiniz.


Excel Dersanesi
Uygulamalı Excel Eğitimi
Excel İçin Örnek Uygulamalar
Video Dersane (***Altın Üyelere Özel***)

Lütfen sorularınızın çözümlendiğine dair geri dönüş mesajı yazınız...!
Lütfen yazım ve forum kurallarına uyalım...!
Lütfen sorularımızı açık ve net bir dille ifade edelim...!



FORUM KURALLARI
Korhan Ayhan Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 23:16


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Hurda - Torna- Çorlu Hidrofor- Çorlu Web Tasarım - Tarot Falı- Çorlu Kasap- Fenerbahçe Haberleri- Trakya Haberleri- Tekirdağ Avukat- Çorlu Döner- Investing- Hurda- Kobi Danışmanlık- Tekirdağ Samsung- Kozmetik Ürünler- Sağlıklı Makyaj Ürünleri- Yaşlanma Karşıtı Ürünler/a>
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.