![]() |
| ![]() |
|
DUYURU SİSTEMİ / REKLAM PANOSU |
Makro-VBA Makro veya VBA ile ilgili sorularınızı buraya gönderebilirsiniz.
![]() |
![]() |
|
Paylaş | Konu Araçları | Görünüm Modları |
![]() |
#1 |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() 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.. |
![]() |
![]() |
![]() |
#2 |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() 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. 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 |
![]() |
![]() |
![]() |
#3 |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() 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.. 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 |
![]() |
![]() |
![]() |
#4 |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() 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 ? 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 |
![]() |
![]() |
![]() |
#5 |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() Şuanda hiçbir problem kalmamıştır
![]() 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 |
![]() |
![]() |
![]() |
#6 |
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013 |
![]() 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 |
![]() |
![]() |
![]() |
#7 | |
Altın Üye
Giriş: 03/02/2009
Şehir: Düzce
Mesaj: 319
Excel Vers. ve Dili:
Microsoft Office Ev ve İş 2013 |
![]() Alıntı:
|
|
![]() |
![]() |
![]() |
#8 |
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013 |
![]() Merhabalar,
örnek dosya yükleme alanını bulamadım. nasıl yükleniyor. tşk |
![]() |
![]() |
![]() |
#9 |
Giriş: 21/02/2017
Şehir: gaziantep
Mesaj: 5
Excel Vers. ve Dili:
excel 2013 |
![]() |
![]() |
![]() |
![]() |
#10 |
Moderatör
Giriş: 15/03/2005
Şehir: ANTALYA
Mesaj: 23,092
Excel Vers. ve Dili:
OFFICE 2013-2016 PRO TR |
![]() Deneyiniz.
Dosya yolunu kendinize göre düzenlersiniz. 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 |
![]() |
![]() |