Checkbox ile sayfaları yazdırırken boş sayfaları denetl

Korhan Ayhan

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

Ekteki kodlarda Checkbox7.Value=True ve Seçim=1 olunca yazdırılan sayfalardan boş olan sayfaları yazdırmak istemiyorum.(Kırmızı renkli bölüm) Form yüklenirken Initialize bölümünde sayfaların B2 hücresi boş ise form üzerinde sayfayı temsil eden checkboxların enabled değeri false oluyor. Ekteki kodda kırmızı renkle belirttiğim bölüme boş olan sayfayı yazdırmamak için nasıl bir ekleme yapmalıyım.


Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim Seçim
If MsgBox("Seçmiş olduğunuz sayfalardaki kayıtlı bilgileriniz yazdırılacaktır onaylıyor musunuz?", vbCritical + vbYesNo, "Dikkat !") = vbYes Then Seçim = 1 Else Seçim = 0
If Seçim = 0 Then
For X = 1 To 6
CheckBox7.Value = False
Controls("Checkbox" & X).Value = False
Next
GoTo Son
End If

If CheckBox7.Value = True And Seçim = 1 Then
Sheets("S1").PrintOut
Sheets("S2").PrintOut
Sheets("S3").PrintOut
Sheets("S4").PrintOut
Sheets("S5").PrintOut
Sheets("S6").PrintOut

End If
CheckBox7.Value = False

For X = 1 To 6
If Controls("Checkbox" & X).Value = True And Seçim = 0 Then
Controls("Checkbox" & X).Value = False
CheckBox7.Value = False
End If
If Controls("Checkbox" & X).Value = True And Seçim = 1 Then
Sheets(X).PrintOut
CheckBox7.Value = False
Controls("Checkbox" & X).Value = False
Else
CheckBox7.Value = False
Controls("Checkbox" & X).Value = False
End If
Next
Call UserForm_Initialize
If Seçim = 1 Then MsgBox ("Seçmiş olduğunuz sayfalardaki kayıtlı bilgileriniz yazdırılmıştır."), vbInformation, "Dikkat !"
Application.ScreenUpdating = True
Son:
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayfa boş olduğunda örneğin bir hücrede değer yoksa yazdırma gibi bir şart konabilir. Ã?rneğin

[vb:1:6fd612f0f6]If CheckBox7.Value = True And Seçim = 1 Then
if Sheets("S1").[a1]<>0 then Sheets("S1").PrintOut
if Sheets("S2").[a1]<>0 then Sheets("S2").PrintOut
if Sheets("S3").[a1]<>0 then Sheets("S3").PrintOut
if Sheets("S4").[a1]<>0 then Sheets("S4").PrintOut
if Sheets("S5").[a1]<>0 then Sheets("S5").PrintOut
End If
[/vb:1:6fd612f0f6]
 
Katılım
16 Aralık 2005
Mesajlar
130
Sorunuzun cevabını sayın leventm vermiş ve cevapta ancak bu şekilde olabilir. Ancak sorunuzda belirtmiş olduğunuz sayfanın boş olması durumunu VBA ile denetlemek oldukça güç bir olaydır. Hücrelerin boş olması durumu sözkonusu ise çözüm yukarıdaki gibidir ama Excel için sayfanın boş olmasına dair bir VBA komutu yoktur, Excel için hücreler boştur veya değildir, bu hücrelere göre sayfanın boş olup olmadığı denetlenebilir ama bu seferde Satır yükseklikleri ve sütun genişlikleri denetlenebilirliği güçleştirir.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn. leventm kodlar için teşekkür ederim.
Sn. osmantelci bilgilendirdiğiniz için sizede teşekkür ederim.
 
Üst