Yazdır butonu oluşturma (kısa makro ile)

Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2020
Butonla yazdırma işlemini

Sub Makro1()
Private Sub CommandButton1_Click()
Sayfa4.PrintPreview

End Sub

bu kodla hallediyorum ama 300 farklı sayfa var ve tek sayfada 300 farklı buton var örneğin 10. butona bastığımda excel deki 14. sayfa yazıyor.
Ancak böyle olunca çok fazla satır yazılmış oluyor. Benim ihtiyacım olan daha az satırla yazdığım işlemin yapılabilir olması. Şimdiden teşekkürler


Şuan kullandığım kod;

Sub Makro1()
Private Sub CommandButton1_Click()
Sayfa4.PrintPreview
End Sub
Private Sub CommandButton2_Click()
Sayfa6.PrintPreview
End Sub
Private Sub CommandButton3_Click()
Sayfa7.PrintPreview
End Sub

.
.
.

böyle 300. butona kadar ilerliyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kod:
Sub Yazdır()
    Sayfa = Application.InputBox("Yazdırmak istediğiniz sayfa adını yazınız...", "Sayfa Adı")
    If Sayfa = "" Or Sayfa = False Then Exit Sub
    Set S1 = Nothing
    On Error Resume Next
    Set S1 = Sheets(CStr(Sayfa))
    On Error GoTo 0
    If Not S1 Is Nothing Then
        S1.PrintPreview
    Else
        MsgBox Sayfa & vbCrLf & vbCrLf & "İsimli sayfa bulunamadı!", vbCritical
    End If
End Sub
 
Katılım
9 Eylül 2010
Mesajlar
855
Excel Vers. ve Dili
2016&2019&2021 TR
Altın Üyelik Bitiş Tarihi
29-09-2023
yazdırma seçeneklerinden çalışma kitabını yazdır çözmüyor mu acaba problemi,
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
Alternatif bir fikir.

ANASAYFA gibi kullandığınız sayfada uygun bir alana yazdırmaya konu olan sayfaların isimlerini listeleyip (örneğin Z1:Z100 alanına),
(FORUM'da sayfa adlarının listelenmesine ilişkin örneklerin var olduğunu biliyorum)
başka bir hücrede de (örneğin A1 hücresi) bu listeyi kaynak olarak kullanan VERİ DOĞRULAMA (liste özelliği) uygulayıp,
bu hücreden yazdırılacak sayfanın adını seçersiniz ve sayfadaki YAZDIR düğmesine ait kod'da da aşağıdaki tek satırı eklemeniz yeterli olabilir.
Sheets(Sheets("ANASAYFA").[A1].Text).PrintOut
 
Son düzenleme:
Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2020
Yanıtlarınız ve ilginiz için teşekkür ederim açıkcası bu kadar hızlı beklemiyordum mutlu ettiniz beni.
Ancak sorunumu tam izah edemedim sanırım. 300 farklı sekmeden oluşan bir excel dosyasıyla çalışıyorum. Ve tek bir sayfada veri girişi yaptığımda örneğin
1. sayfada
1. sütunda veri giriyorum. 15. sayfada çıktı alacağım hale geliyor. Ben 15. sayfaya gidip yazdır demek yerine 1. sayfada
Sub Makro1()
Private Sub CommandButton1_Click()
Sayfa15.PrintPreview

End Sub

bu kodla butona basarak 15. sayfadaki çıktı alacağım yerin yazılmasını sağlıyorum.
Öyle bir kod olmalı ki hem satırı az olmalı hemde 300 farklı butonda 300. butona bastığımda 304. sayfayı yazdırabilmeli. Umarım anlatabilmişimdir. Tekrar teşekkürler.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Sanırım ardarda mesaj yazdık ve fark etmediniz.
Sayfayı yenileyerek bir önceki cevabımı okuyunuz.

Halledemezseniz gerçek belgenin, özel bilgi içermeyen bir kopyası şeklinde hazırlayacağınız ve
içine açıklama ekleyeceğiniz bir örnek belge yükleyin.
.
 
Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2020
Merhaba.
Alternatif bir fikir.

ANASAYFA gibi kullandığınız sayfada uygun bir alana yazdırmaya konu olan sayfaların isimlerini listeleyip (örneğin Z1:Z100 alanına),
(FORUM'da sayfa adlarının listelenmesine ilişkin örneklerin var olduğunu biliyorum)
başka bir hücrede de (örneğin A1 hücresi) bu listeyi kaynak olarak kullanan VERİ DOĞRULAMA (liste özelliği) uygulayıp,
bu hücreden yazdırılacak sayfanın adını seçersiniz ve sayfadaki YAZDIR düğmesine ait kod'da da aşağıdaki tek satırı eklemeniz yeterli olabilir.
Yönteminiz çok zekice teşekkür ederim. Diğer yolla alakalı bir gelişme yaşayamazsam bu yöntemi kullanacağım.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Örnek belgenin gerçek belgeyle aynı yapıda olmadığını tahmin ediyorum ama yine de cevap yazayım.
Ekteki belgede yer alan yapı gibi bir düzen ile TEK DÜĞME ile işlem yapılabilir.

Eklediğim belgeye, fareyle BURAYA tıklayarak da erişebilirsiniz.
 

Ekli dosyalar

Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2020
Örnek belgenin gerçek belgeyle aynı yapıda olmadığını tahmin ediyorum ama yine de cevap yazayım.
Ekteki belgede yer alan yapı gibi bir düzen ile TEK DÜĞME ile işlem yapılabilir.

Eklediğim belgeye, fareyle BURAYA tıklayarak da erişebilirsiniz.
teşekkür ederim bu yoldaki yapıyı kendi dosyamda uygulayabiliyorum. Çokta işime yarayacak teşekkür ederim. Ancak benim dosyamda her sütunun yanında bir buton yer alıyor onları silmeden hemen verinin yanında o butona basarak yazdırma işlemi yapabileceğim bir yöntem var mıdır aceba? yoksa bu yöntemi kullanacağım tabiki.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,547
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
#2 nolu mesajda verdiğim kodu deneme şansınız oldu mu?
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
13,002
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Sayın AYHAN'ın verdiği kod da pratik bir kod'dur.
Sayfa adlarınız örnek belgenizdeki gibi hatalı yazılmayabilecek cinsten ise Sayın AYHAN'ın verdiği kod da kullanılabilir.

Bir sayfada 300 adet CommandButton hiç anlamlı değil.
Ben olsam mevcut tüm düğmeleri siler ve eklediğim belgedeki gibi tek düğme ile işlemi gerçekleştiririm.

Sayfada üstten berkaç satırı sürekli görünür kılmak için BÖLMELERİ DONDUR işlemi uygulayın ve böylece
sayfada aşağılardaki hücrelerde işlem yaparken de yazdırılacak sayfa adı seçiminin yapıldığı hücre ve YAZDIR düğmesi sürekli görünür durumda olur.

Belgeyi, kullanım tarzınızı, tam olarak bilemiyorum.
.
 
Katılım
21 Kasım 2018
Mesajlar
153
Excel Vers. ve Dili
Excel 2013 , Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2020
teşekkür ederim hocam çok kullanışlı.
Sizden ve excel den çok mu şey istemiş olurum bilmiyorum ama bu sayfayı yazdır kısmını alt alta kopyalasam. Örneğin L5 teki Sayfayı yazdıra bastığımda gelen menü de 5. sayfa seçilmiş olsa L6 da da aynı şekilde 6. sayfa seçilmiş olsa münkün müdür aceba kendi bilgilerimle uğraştım ama üstesinden gelemedim. Ayrıca böyle yapmak yine excelin yavaşlamasına neden olur mu?
 
Son düzenleme:
Üst