- Katılım
- 6 Haziran 2014
- Mesajlar
- 73
- Excel Vers. ve Dili
- Office Pro Plus TR 2019
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub yazdir()
Application.ScreenUpdating = False
gizlesonsatir = Cells(Rows.Count, "D").End(3).Row - 1
For i = gizlesonsatir To 2 Step -1
gec = Cells(i, "D").Value
If gec = "" Then
Rows(i).Hidden = True
End If
Next i
sonsatir = Cells(Rows.Count, "D").End(3).Row
secim1 = "D2:I" & sonsatir
secim2 = "$D$2:$I$" & sonsatir
Range(secim1).Select
ActiveSheet.PageSetup.PrintArea = secim2
Range("A1").Select
ActiveSheet.PrintOut Copies:=1
For i = gizlesonsatir To 2 Step -1
gec = Cells(i, "D").Value
If gec = "" Then
Rows(i).Hidden = False
End If
Next i
Application.ScreenUpdating = True
End Sub
Sayın Ömer Baran bey, öneriniz ve yol göstericiliğiniz için çok minnettarım ne kadar da haklısınız. Bir dahaki sefere öyle yapacağım.
Sayın Asri bey verdiğiniz kod harfiyen oluyor ve çok mutlu oldum tam da tarif ettiğim şekilde yapmışsınız elinize kolunuza yüreğinize sağlık. Sadece ufak bir sorunum var makro çok ağır çalışıyor onu hızlandırma yolu var mıdır? (D3:I194 tablo sınırımdır)
Sub yazdir()
Application.ScreenUpdating = False
Dim rngBlnk As Range
On Error Resume Next
Set rngBlnk = Range("D4:D193").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rngBlnk Is Nothing Then
rngBlnk.EntireRow.Hidden = True
End If
ActiveSheet.PrintOut Copies:=1
rngBlnk.EntireRow.Hidden = False
Application.ScreenUpdating = True
End Sub
Örnek dosya olmayınca tam istenen sonuç alınmaması normal : )
Aşağıdaki şekide deneyiniz.
Kod:Sub yazdir() Application.ScreenUpdating = False Dim rngBlnk As Range On Error Resume Next Set rngBlnk = Range("D4:D193").SpecialCells(xlCellTypeBlanks) On Error GoTo 0 If Not rngBlnk Is Nothing Then rngBlnk.EntireRow.Hidden = True End If ActiveSheet.PrintOut Copies:=1 rngBlnk.EntireRow.Hidden = False Application.ScreenUpdating = True End Sub
Haklısınız istenen sonuç için ek gerekli, yukarıdaki kodu denedim boş hücreler beraberinde çıktı oluyor asri bey.
Sub yazdir()
Application.ScreenUpdating = False
Dim rngBlnk As Range
sonsatir = Cells(Rows.Count, "F").End(3).Row + 1
On Error Resume Next
Set rngBlnk = Range("F4:F172").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rngBlnk Is Nothing Then
rngBlnk.EntireRow.Hidden = True
End If
secim1 = "D3:I" & sonsatir
secim2 = "$D$2:$I$" & sonsatir
Range(secim1).Select
ActiveSheet.PageSetup.PrintArea = secim2
Range("A1").Select
ActiveSheet.PrintOut Copies:=1
If Not rngBlnk Is Nothing Then
rngBlnk.EntireRow.Hidden = False
End If
Application.ScreenUpdating = True
End Sub
Sub YAZDIR()
Dim Son As Long, X As Long, Alan As Range
Application.ScreenUpdating = False
Cells.EntireRow.Hidden = False
Son = Cells(Rows.Count, "E").End(3).Row
For X = 5 To Son
If Cells(X, "D") = "" Then
If Alan Is Nothing Then
Set Alan = Cells(X, "D")
Else
Set Alan = Union(Alan, Cells(X, "D"))
End If
End If
Next
If Not Alan Is Nothing Then Alan.EntireRow.Hidden = True
ActiveSheet.PrintOut
Cells.EntireRow.Hidden = False
Application.ScreenUpdating = True
MsgBox "Yazdırma işlemi tamamlanmıştır.", vbInformation
End Sub