• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayfa 2'deki taksit tablosunun Sayfa1'deki B21 hücresindeki sayı kadar aktif olması

  • Konbuyu başlatan Konbuyu başlatan mars2
  • Başlangıç tarihi Başlangıç tarihi
Konu hakkında destek ve sorunun kaynağının nereden kaynaklandığı hakkında görüş ve önerilerinizi beklemekteyim.
Option Explicit

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
 
Geri
Üst