Soru Hazır çıktı ayarı

Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Merhabalar,

Excelde kendi hazırladığım imalat programında farklı bir sayfada imalat reçetesi oluşturttum, bu reçeteyi her seferinde seçip tek tek yazdırmak yerine o alanı bir fonksiyona bağlayarak kağıt ayarları ve yazıcı ayarları yaparak çıkarttırabilir miyim?
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
Merhaba,

Kod:
Sub ReçeteYazdır()
    Sheets("ReçeteSayfası").Select  ' Bu kısmı gerçek sayfa adınızla değiştirin
    
    ' Yazdırma alanını belirleyin hocam (A1:H20 örnek bir alandır, kendi alanınıza göre değiştirin)
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
    
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait 
        .PaperSize = xlPaperA4     
        .Zoom = False             
        .FitToPagesWide = 1       
        .FitToPagesTall = 1       
        .CenterHorizontally = True
        .CenterVertically = True   
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
    
    ActiveSheet.PrintOut Copies:=1
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Merhaba,

Kod:
Sub ReçeteYazdır()
    Sheets("ReçeteSayfası").Select  ' Bu kısmı gerçek sayfa adınızla değiştirin
   
    ' Yazdırma alanını belirleyin hocam (A1:H20 örnek bir alandır, kendi alanınıza göre değiştirin)
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
   
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .PaperSize = xlPaperA4    
        .Zoom = False            
        .FitToPagesWide = 1      
        .FitToPagesTall = 1      
        .CenterHorizontally = True
        .CenterVertically = True  
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
   
    ActiveSheet.PrintOut Copies:=1
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
Yazdırmak istediğim kağıt a6 boyutunda ".PaperSize = xlPaperA6" yaptığım zaman 400 hatası alıyorum. https://learn.microsoft.com/en-us/office/vba/api/excel.xlpapersize bu linkte a6 kağıt için bir bilgi yer almıyor. a6 kağıtta kullanamıyor muyuz acaba?
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
Bu şekilde dener misiniz hocam;

Kod:
Sub ReçeteYazdır()
    Sheets("ReçeteSayfası").Select
    
    ' Yazdırma alanını belirleyin
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
    
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .PaperSize = xlPaperUser
        .Zoom = False           
        .FitToPagesWide = 1     
        .FitToPagesTall = 1     
        .CenterHorizontally = True
        .CenterVertically = True 
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
    
    ActiveSheet.PrintOut Copies:=1
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Bu şekilde dener misiniz hocam;

Kod:
Sub ReçeteYazdır()
    Sheets("ReçeteSayfası").Select
  
    ' Yazdırma alanını belirleyin
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
  
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .PaperSize = xlPaperUser
        .Zoom = False         
        .FitToPagesWide = 1   
        .FitToPagesTall = 1   
        .CenterHorizontally = True
        .CenterVertically = True
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
  
    ActiveSheet.PrintOut Copies:=1
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
Sayfa düzeni / Boyut kısmını a6 olarak ayarladıktan sonra koddaki papersize komutunu kaldırarak MsgBox PageSetup.PaperSize komutu ile a6 kağıt boyutuna verdiği değeri buldum. Bu 70miş. Ardından .PaperSize =70 komutunu ekledim şuan çalışıyor. Ama çıtkı işleminden sonra reçete sayfasında kalıyor. Tüm işlem bittikten sonra istediğim sayfaya geri dönebilir miyim acaba?

Bu işlemleri yapmadan önce sizin dediğinizi denemiştim.

Birde konudan alakasız Sayfa düzeni / Boyut kısmını sürekli değişiyor burada yaptığım ayarın kesinlikle kalması için bir şey yapabilir miyim?
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
İstediğiniz sayfaya dönme imkanı var hocam. Şu şekilde kodunuzu düzenleyebilirsiniz;

Kod:
Sub ReçeteYazdır()
    Dim öncekiSayfa As Worksheet
    Set öncekiSayfa = ActiveSheet
    
    Sheets("ReçeteSayfası").Select
    
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
    
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .PaperSize = 70
        .Zoom = False         
        .FitToPagesWide = 1   
        .FitToPagesTall = 1   
        .CenterHorizontally = True
        .CenterVertically = True
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
    
    ActiveSheet.PrintOut Copies:=1
    
    öncekiSayfa.Activate
    
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
Belirli bir sayfaya dönmek için;

Kod:
Sheets("AnaSayfa").Activate
Diğer sorunuz için;
ThisWorkbook modülüne şunu ekleyebilir misiniz;

Kod:
Private Sub Workbook_Open()
    Sheets("ReçeteSayfası").PageSetup.PaperSize = 70 
End Sub
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
İstediğiniz sayfaya dönme imkanı var hocam. Şu şekilde kodunuzu düzenleyebilirsiniz;

Kod:
Sub ReçeteYazdır()
    Dim öncekiSayfa As Worksheet
    Set öncekiSayfa = ActiveSheet
   
    Sheets("ReçeteSayfası").Select
   
    ActiveSheet.PageSetup.PrintArea = "A1:H20"
   
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait
        .PaperSize = 70
        .Zoom = False        
        .FitToPagesWide = 1  
        .FitToPagesTall = 1  
        .CenterHorizontally = True
        .CenterVertically = True
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
   
    ActiveSheet.PrintOut Copies:=1
   
    öncekiSayfa.Activate
   
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub
Belirli bir sayfaya dönmek için;

Kod:
Sheets("AnaSayfa").Activate
Diğer sorunuz için;
ThisWorkbook modülüne şunu ekleyebilir misiniz;

Kod:
Private Sub Workbook_Open()
    Sheets("ReçeteSayfası").PageSetup.PaperSize = 70
End Sub
İşlem yapılan sayfada kalıyorum artık fakat papersize kodu sanırım işe yaramadı, her işlemden sonra değişiyor.
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
Hocam şu şekilde dener misiniz değişmemesi için;

Kod:
Sub ReçeteYazdır()
    Dim öncekiSayfa As Worksheet
    Set öncekiSayfa = ActiveSheet
    Sheets("ReçeteSayfası").Select
    SayfaBoyutunuAyarla
    ActiveSheet.PrintOut Copies:=1
    SayfaBoyutunuAyarla
    öncekiSayfa.Activate
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub

Sub SayfaBoyutunuAyarla()
    With ActiveSheet.PageSetup
        .PrintArea = "A1:H20"
        .Orientation = xlPortrait
        .PaperSize = 70
        .Zoom = False      
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .CenterHorizontally = True
        .CenterVertically = True
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
End Sub
Reçete Sayfasının modülüne;

Kod:
Private Sub Worksheet_Activate()
    With Me.PageSetup
        .PaperSize = 70
        .Orientation = xlPortrait
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
End Sub
ThisWorkbook modülüne;

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "ReçeteSayfası" Then
        With ActiveSheet.PageSetup
            .PaperSize = 70 
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
        End With
    End If
End Sub

Private Sub Workbook_Open()
    Sheets("ReçeteSayfası").PageSetup.PaperSize = 70
End Sub
ReçeteSayfası olarak girdiğim tahmini sayfa ismini lütfen düzenlemeyi unutmayın.
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Hocam şu şekilde dener misiniz değişmemesi için;

Kod:
Sub ReçeteYazdır()
    Dim öncekiSayfa As Worksheet
    Set öncekiSayfa = ActiveSheet
    Sheets("ReçeteSayfası").Select
    SayfaBoyutunuAyarla
    ActiveSheet.PrintOut Copies:=1
    SayfaBoyutunuAyarla
    öncekiSayfa.Activate
    MsgBox "Reçete başarıyla yazdırıldı!", vbInformation
End Sub

Sub SayfaBoyutunuAyarla()
    With ActiveSheet.PageSetup
        .PrintArea = "A1:H20"
        .Orientation = xlPortrait
        .PaperSize = 70
        .Zoom = False     
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .CenterHorizontally = True
        .CenterVertically = True
        .CenterHeader = "İmalat Reçetesi"
        .CenterFooter = "Sayfa &P / &N"
        .RightFooter = "Tarih: &D"
    End With
End Sub
Reçete Sayfasının modülüne;

Kod:
Private Sub Worksheet_Activate()
    With Me.PageSetup
        .PaperSize = 70
        .Orientation = xlPortrait
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
End Sub
ThisWorkbook modülüne;

Kod:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "ReçeteSayfası" Then
        With ActiveSheet.PageSetup
            .PaperSize = 70
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
        End With
    End If
End Sub

Private Sub Workbook_Open()
    Sheets("ReçeteSayfası").PageSetup.PaperSize = 70
End Sub
ReçeteSayfası olarak girdiğim tahmini sayfa ismini lütfen düzenlemeyi unutmayın.
Çok teşekkür ederim çalıştı.
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Rica ederim iyi çalışmalar
Dün gece hata vermiyordu ama


Kod:
Private Sub Workbook_Open()
    Sheets("Sabit Sineklik Reçete").PageSetup.PaperSize = 70
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Sabit Sineklik Reçete" Then
        With ActiveSheet.PageSetup
            .PaperSize = 70
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
        End With
    End If
End Sub
compile error expected end sub hatası alıyorum sebebini bir türlü çözemedim, bir yerde yanlışlık yaptım sanırım. bi bakabilir misiniz
 
Katılım
11 Temmuz 2024
Mesajlar
247
Excel Vers. ve Dili
Excel 2021 Türkçe
Bu şekilde dener misiniz hocam;

Kod:
Private Sub Workbook_Open()
    Sheets("Sabit Sineklik Reçete").PageSetup.PaperSize = 70
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Sabit Sineklik Reçete" Then
        With ActiveSheet.PageSetup
            .PaperSize = 70
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
        End With
    End If
End Sub
 
Katılım
14 Mart 2025
Mesajlar
8
Excel Vers. ve Dili
2021 Türkçe
Bu şekilde dener misiniz hocam;

Kod:
Private Sub Workbook_Open()
    Sheets("Sabit Sineklik Reçete").PageSetup.PaperSize = 70
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    If ActiveSheet.Name = "Sabit Sineklik Reçete" Then
        With ActiveSheet.PageSetup
            .PaperSize = 70
            .Orientation = xlPortrait
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
        End With
    End If
End Sub
Bu şekilde denemiştim, sayfa görünümü bu şekilde çalışmıyor dosyanın en başında ve yazdırma sonrasında sayfa görünümü a6 ya dönmüyor ama reçeteyi yazdırırken a6 olarak çalışıyor buna bi çözüm bulamadım, çalıştığı için daha fazla uğraşmayacağım sanırım
 
Üst