wezyr
Altın Üye
- Katılım
- 14 Nisan 2006
- Mesajlar
- 138
- Excel Vers. ve Dili
- OFFİCE 2010-2019
Option ExplicitKonu hakkında destek ve sorunun kaynağının nereden kaynaklandığı hakkında görüş ve önerilerinizi beklemekteyim.
Sub Düğme3_Tıkla()
Dim anaKitap As Workbook
Dim wsOdeme As Worksheet
Dim wsTaksit As Worksheet
Dim hataNo As Long
Dim hataMesaji As String
Set anaKitap = ActiveWorkbook
' 1. Sayfa atamaları ve hata kontrolü
On Error Resume Next
Set wsOdeme = anaKitap.Worksheets("Ödeme planı")
Set wsTaksit = anaKitap.Worksheets("Taklsittablosu") ' Not: Sekme adınızdaki olası harf hatasına dikkat edin (Taklsit)
On Error GoTo 0
If wsOdeme Is Nothing Then
MsgBox anaKitap.Name & " dosyasında 'Ödeme planı' sayfası bulunamadı.", _
vbExclamation, "Sayfa bulunamadı"
Exit Sub
End If
If wsTaksit Is Nothing Then
MsgBox anaKitap.Name & " dosyasında 'Taklsittablosu' sayfası bulunamadı.", _
vbExclamation, "Sayfa bulunamadı"
Exit Sub
End If
' 2. Kullanıcı onayı
If MsgBox("YAZDIRMA İŞLEMİ YAPILACAK MI?", _
vbYesNo + vbQuestion, "DİKKAT!") = vbNo Then
MsgBox "Yazdırma işlemi iptal edildi.", vbInformation
Exit Sub
End If
On Error GoTo Hata
Application.ScreenUpdating = False
' 3. Sayfa ayarları (Dizi/Döngü referans hatalarını önlemek için doğrudan ayarlandı)
With wsOdeme.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
With wsTaksit.PageSetup
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
' Formüllerin güncel olduğundan emin ol
anaKitap.Calculate
' 4. DOĞRUDAN YAZDIRMA (Hata 424'ü çözen ana değişiklik)
' Sayfaları Select yapmadan doğrudan arka planda yazdırıyoruz.
anaKitap.Worksheets(Array(wsOdeme.Name, wsTaksit.Name)).PrintOut Copies:=1, Collate:=True
Application.ScreenUpdating = True
MsgBox "Yazdırma işlemi tamamlandı.", vbInformation
Exit Sub
Hata:
hataNo = Err.Number
hataMesaji = Err.Description
' Hata durumunda ekranı tekrar aktif etmeyi unutmamak için
Application.ScreenUpdating = True
MsgBox "Hata numarası: " & hataNo & vbCrLf & _
"Hata açıklaması: " & hataMesaji, _
vbCritical, "Yazdırma hatası"
End Sub
bu kodu denermisin
