Toplu Form Yazdırma

Katılım
12 Ocak 2009
Mesajlar
26
Excel Vers. ve Dili
2007, xls, cs, ps
Altın Üyelik Bitiş Tarihi
05-07-2023
Arkadaşlar merhaba,
forum sayesinde baya baya bir şeyler başarmaya başladım. çok çok çok teşekkürlerimi sunuyorum. Formumun bitmesine son aşama kaldı. Bunu nasıl çözeceğim ve/veya nasıl bir yol izleyeceğimi bilemiyorum. Yardımınıza ihtiyacım var.

Dosyayı İndir : https://dosya.co/5nb1sbc9cx4p/Dosya.xlsm.html


VAR OLANLAR;
1-İki sayfalı bir çalışma dosyam var.
2-Data sayfasında verilerim diğer sayfada hazır şablon formum var.
3-Sıra No (kırmızı ile işaretli) bu kısımda data sayfasından liste çekmektedir.
4-Hazır şablon Formumuzdaki bir çok alan DÜŞEYARA ile SıraNo ve Data sayfasına bağlıdır.
5-Sıra no seçilerek ekrana gelen form verilerini [YAZDIR] butonuna basarak tek bir sayfa halinde yazdırabiliyorum.**

İSTENEN;
6-[TÜMÜNÜ YAZDIR] butonuna bastığımızda, DATA sayfasındaki tüm verileri forma uygun şekilde toplu yazdırmalıyız.

Örnek Ekran;
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodu deneyin:

PHP:
Sub Düğme4_Tıkla()
    Set s1 = Sheets("FATURALAR")
    Set s2 = Sheets("DATA")
    son = s2.Cells(Rows.Count, "B").End(3).Row
    For i = 2 To son
        If s2.Cells(i, "B") <> "" Then
            s1.[C5] = s2.Cells(i, "A")
            Dim Yazıcı As String
            Yazıcı = Application.Dialogs(xlDialogPrinterSetup).Show
            If Yazıcı = False Then Exit Sub
            Sheets("FATURALAR").PrintOut From:=1, to:=1, Copies:=1, Collate:=True
        End If
    Next
End Sub
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Katılım
12 Ocak 2009
Mesajlar
26
Excel Vers. ve Dili
2007, xls, cs, ps
Altın Üyelik Bitiş Tarihi
05-07-2023
Çok teşekkür ediyorum, süpersiniz. Altın Üyeliği alacağım inşallah.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,268
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Kod:
Sheets("FATURALAR").PrintOut From:=1, to:=1, Copies:=1, Collate:=True
Sayın @YUSUF44

Bir aralıkta basma amacı ile başlama ve bitiş sayı veya numaralarını ya da tarih aralığını inbox ile vermek için Sayın @werem için hazırladığınız koda nasıl bir ekleme ya da değişiklik yapmak gerekir ?
 
Son düzenleme:

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Bu şekilde dener misiniz?

Kod:
Sub Düğme4_Tıkla()
    Set s1 = Sheets("FATURALAR")
    Set s2 = Sheets("DATA")
    son = s2.Cells(Rows.Count, "B").End(3).Row
    For i = 2 To son
        If s2.Cells(i, "B") <> "" Then
            s1.[C5] = s2.Cells(i, "A")
  
   Dim Yazıcı As String
       Yazıcı = Application.Dialogs(xlDialogPrinterSetup).Show
   If Yazıcı = False Then
       Else
     msg1 = InputBox("Başlama sayfası")
     msg2 = InputBox("Bitiş sayfası")
     msg3 = InputBox("Kopya sayısı")
    
    Sheets("FATURALAR").PrintOut From:=msg1, To:=msg2, Copies:=msg3, Collate:=True
    End If
End Sub
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,268
Excel Vers. ve Dili
office 2003 tr + office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2024
Sayın Mahmut Bayram

Sayın @werem için Sayın @YUSUF44 'ün vermiş olduğu kodlar benim de bir konumu çözmeme yardımcı oldu.

Belli aralıkta basım için sizin verdiğiniz öneri kodlarınız için çok teşekkür ederim .Henüz asıl bilgisayarımın başında değilim , ancak ulaşınca deneyerek size geri bildirim vereceğim. Kodları okuduğum kadarı ile mantıklı ve çalışacaktır, denemede sorun çıkarmayacak gibi .
 
Katılım
12 Ocak 2009
Mesajlar
26
Excel Vers. ve Dili
2007, xls, cs, ps
Altın Üyelik Bitiş Tarihi
05-07-2023
Bu şekilde dener misiniz?

Kod:
Sub Düğme4_Tıkla()
    Set s1 = Sheets("FATURALAR")
    Set s2 = Sheets("DATA")
    son = s2.Cells(Rows.Count, "B").End(3).Row
    For i = 2 To son
        If s2.Cells(i, "B") <> "" Then
            s1.[C5] = s2.Cells(i, "A")
 
   Dim Yazıcı As String
       Yazıcı = Application.Dialogs(xlDialogPrinterSetup).Show
   If Yazıcı = False Then
       Else
     msg1 = InputBox("Başlama sayfası")
     msg2 = InputBox("Bitiş sayfası")
     msg3 = InputBox("Kopya sayısı")
   
    Sheets("FATURALAR").PrintOut From:=msg1, To:=msg2, Copies:=msg3, Collate:=True
    End If
End Sub

ÜSTAT Toplu çıktı almak istediğimde 1 tane veriyor. çözemedim bir türlü
 

Mahmut Bayram

Özel Üye
Katılım
25 Haziran 2005
Mesajlar
1,778
Excel Vers. ve Dili
2016 Excel Tr
Diyelim ki 5 sayfalık excel dosyanız var.

Başlangıç sayfasını sorduğunda 1
Bitiş sayfasını sorduğunda 5
Kopya sayısı 2

yazdınız ve yazdır dediniz diyelim.
Bu 5 sayfalık dosyadan 2 nüsha çıktı alırsınız.
 
Üst