Bazı sayfaları tek bir pdf'de print almak.

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Bazı sayfaları tek bir pdf'de print almak.

İleti#1)  clavuza » 12 Oca 2019 20:12

Herkese Merhaba,

Basit olarak yaşadığım problemi ve aradığım çözüm yollarını anlatmak istiyorum.

15 sayfalık bir çalışma kitabım var, ben 3.sayfadan başlayıp 10.sayfaya kadar olan sayfaların çıktısını pdf olarak almak istiyorum.
Kullandığım kod:
'ToggleVisible False

'ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"exported file.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

ToggleVisible True

şeklinde
ancak bunu istediğim sayfaları pdf yapacak şekilde entegre edemedim. Buraya ne eklemem gerekiyor takıldım kaldım :roll:
Kodlamada yeniyim. Araştırmalarıma rağmen sorumun tam cevabını bulamadım.
Yardımcı olursanız sevinirim.
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#2)  clavuza » 12 Oca 2019 20:20

Not:

ThisWorkbook.Sheets(1, 2, 3, 4).ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"performance.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Kendimce bu şekilde düzenledim. ancak

"Compile error: Wrong number ofarguments or invalid property assignment" hatası alıyorum.
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#3)  şahin » 12 Oca 2019 21:37

Kod: Tümünü seç
Sub pdfCevir()
ThisWorkbook.Sheets(Array("Sayfa3", "Sayfa4", "Sayfa5", "Sayfa6", "Sayfa7", "Sayfa8", "Sayfa9", "Sayfa10")).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "d:\exported file.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
    ActiveWindow.Close False
    Sheets("Sayfa2").Select
End Sub


Örnek dosya ekte..
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
şahin
Siteye Alışmış
 
Kayıt: 30 Eyl 2016 23:24
Meslek: memur
Yaş: 29
İleti: 472
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: bursa

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#4)  clavuza » 12 Oca 2019 23:09

Tekrar merhaba
öncelikle ilginiz için teşekkür ederim,

göndermiş olduğunuz ekteki dosya tam istediğim program

ancak makroyu benim çalışma kitabıma aldığımda

Subscript out of range hatası alıyorum.

ThisWorkbook.Sheets(Array("Sayfa3", "Sayfa4", "Sayfa5", "Sayfa6", "Sayfa7", "Sayfa8", "Sayfa9", "Sayfa10")).Copy

Array'i mi tanımıyor acaba
bu satır için veriyor hatayı

nerede yanlış yaptığımı bulamadım. biraz uğraşacağım yine de bunun üzerine.
Tekrar teşekkürler.
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#5)  şahin » 12 Oca 2019 23:37

Tırnak içerisine kendi excel dosynızdaki sayfa isimlerini yazmanız gerekir...
Kullanıcı avatarı
şahin
Siteye Alışmış
 
Kayıt: 30 Eyl 2016 23:24
Meslek: memur
Yaş: 29
İleti: 472
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: bursa

Cevap: Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#6)  clavuza » 12 Oca 2019 23:43

şahin yazdı:Tırnak içerisine kendi excel dosynızdaki sayfa isimlerini yazmanız gerekir...


Evet şkşk

Bunu baştan düşünemedim..

Çok yardımcı oldunuz, programımda sona gelmiştim. Tekrar sağolun. --)(
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Başka bir problem?

İleti#7)  clavuza » 13 Oca 2019 18:31

Bir soru daha sormak istiyorum:

sinif1 sinif2 sinif3.... diye devam eden sayfalarım var farklı durumlar için farklı çıktılar almam gerek
ör: bazen 1 den 5 e kadar, bazen 1 den 7 ye kadar

Kod: Tümünü seç
a = Sayfa2.Cells(1, 1)       'a ya bir sayı tanımladım.

sinif = "" & "sinif1" & ""
    For k = 2 To a
    sinif = sinif & """" & "," & """" & "sinif" & k & ""
    Next k



   
    ThisWorkbook.Sheets(Array(Str(sinif))).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Siniflar.pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    ActiveWindow.Close False



Burada mantık olarak: ThisWorkbook.Sheets(Array("sinif1","sinif2","sinif3","sinif4","sinif5")).Copy
diye algılamasını bekliyorum ancak program "run time error" veriyor.

Ben sadece 1 den a değişkenine kadar olan sayfaları yazdırmasını istiyorum. Bu kendimce derledim ama yine bir yerde hata yapıyorum. Bunu nasıl çözebiliriim acaba? ya da daha kolay bir yolu, öneriniz var mıdır?
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#8)  veyselemre » 13 Oca 2019 19:19

Kod: Tümünü seç
Sub test()

    bas = Sayfa1.Cells(1, 1)
    son = Sayfa1.Cells(2, 1)
   
    ReDim sayfalar(0 To son - bas)

    For i = bas To son
        sayfalar(a) = "Sayfa" & i
        a = a + 1
    Next i

    ThisWorkbook.Sheets(sayfalar).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                       "Siniflar.pdf", Quality:=xlQualityStandard, _
                                       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    ActiveWindow.Close False


End Sub
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 104
İleti: 280
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#9)  clavuza » 13 Oca 2019 19:36

veyselemre yazdı:
Kod: Tümünü seç
Sub test()

    bas = Sayfa1.Cells(1, 1)
    son = Sayfa1.Cells(2, 1)
   
    ReDim sayfalar(0 To son - bas)

    For i = bas To son
        sayfalar(a) = "Sayfa" & i
        a = a + 1
    Next i

    ThisWorkbook.Sheets(sayfalar).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                       "Siniflar.pdf", Quality:=xlQualityStandard, _
                                       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    ActiveWindow.Close False


End Sub


maalesef program " ThisWorkbook.Sheets(sayfalar).Copy" bu kısımda takılıp hata veriyor. Runtime error '9':
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork

Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#10)  veyselemre » 13 Oca 2019 19:44

Kod: Tümünü seç
Sub test2()

    a = Sayfa2.Cells(1, 1)       'a ya bir sayı tanımladım.

    For k = 1 To a
        sinif = sinif & "," & "sinif" & k
    Next k

    arr = Split(Mid(sinif, 2), ",")
   
    ThisWorkbook.Sheets(arr).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                       "Siniflar.pdf", Quality:=xlQualityStandard, _
                                       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    ActiveWindow.Close False

End Sub
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 104
İleti: 280
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Cevap: Cevap: Bazı sayfaları tek bir pdf'de print alm

İleti#11)  veyselemre » 13 Oca 2019 19:47

sayfalar(a) = "Sinif" & i
Kullanıcı avatarı
veyselemre
Siteye Alışmış
 
Kayıt: 28 Nis 2015 17:53
Meslek: SERBEST
Yaş: 104
İleti: 280
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara / Çubuk

Cevap: Cevap: Bazı sayfaları tek bir pdf'de print almak.

İleti#12)  clavuza » 13 Oca 2019 20:12

veyselemre yazdı:
Kod: Tümünü seç
Sub test2()

    a = Sayfa2.Cells(1, 1)       'a ya bir sayı tanımladım.

    For k = 1 To a
        sinif = sinif & "," & "sinif" & k
    Next k

    arr = Split(Mid(sinif, 2), ",")
   
    ThisWorkbook.Sheets(arr).Copy
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                       "Siniflar.pdf", Quality:=xlQualityStandard, _
                                       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
    ActiveWindow.Close False

End Sub



Çok teşekkür ederim sorunsuz çalıştı. Harikasınız. şkşk
Kullanıcı avatarı
clavuza
Yeni Başlamış
 
Kayıt: 06 Oca 2019 22:54
Meslek: öğretmen
Yaş: 31
İleti: 10
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: newyork


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 3 misafir

Bumerang - Yazarkafe