Makro ile Sadece dolu hücreleri yazdırmak istiyorum.

Katılım
12 Temmuz 2021
Mesajlar
7
Excel Vers. ve Dili
Türkçe
Merhaba burada ilk defa bir yardım için yazıyorum.

Ben yazdırma alanını makroya bağladım
Sub sarıçam()
Sayfa5.Activate
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$80:$AB$1:$AB$80"
ActiveWindow.SelectedSheets.PrintOut 'printSub Test()
End Sub

Ama benim istediğim bu alanı yazdırırken sadece dolu olan hücreleri yazdırsın, içerisinde formül olan hücreleri de boş görsün sadece dolu olan hücreleri yazdırsın istiyorum.
İnşallah anlaşılmışımdır yukarıdaki değerler içerisinde sadece dolu hücreler yazdırılsın formül olup boş görünen hücreler yazdırılmasın şimdiden teşekkür ederim
 

Korhan Ayhan

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

C++:
ActiveSheet.PageSetup.PrintArea = "$A$1:$AB$" & Evaluate("LOOKUP(2,1/(A1:A80<>""""),ROW(A1:A80))")
 

MusaPEKEL

Altın Üye
Katılım
29 Ağustos 2016
Mesajlar
65
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
16-01-2027
Merhaba burada ilk defa bir yardım için yazıyorum.

Ben yazdırma alanını makroya bağladım
Sub sarıçam()
Sayfa5.Activate
ActiveSheet.PageSetup.PrintArea = "$A$1:$A$80:$AB$1:$AB$80"
ActiveWindow.SelectedSheets.PrintOut 'printSub Test()
End Sub

Ama benim istediğim bu alanı yazdırırken sadece dolu olan hücreleri yazdırsın, içerisinde formül olan hücreleri de boş görsün sadece dolu olan hücreleri yazdırsın istiyorum.
İnşallah anlaşılmışımdır yukarıdaki değerler içerisinde sadece dolu hücreler yazdırılsın formül olup boş görünen hücreler yazdırılmasın şimdiden teşekkür ederim
Kod:
Sub DoluHucresiVeFormulsuzYazdir()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long
    Dim hedefSatir As Long
    
    ' Çalışma sayfasını belirle (örneğin, Sayfa1)
    Set ws = ThisWorkbook.Sheets("Sayfa1")
    
    ' A sütunundaki son satırı bul
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' Hedef satırı belirle (örneğin, B sütununda yazdırmak istediğiniz ilk satır)
    hedefSatir = 1
    
    ' Dolu hücreleri ve formül olmayan hücreleri bul ve B sütununa yazdır
    For i = 1 To sonSatir
        If Not IsEmpty(ws.Cells(i, 1).Value) And Not ws.Cells(i, 1).HasFormula Then
            ws.Cells(hedefSatir, 2).Value = ws.Cells(i, 1).Value
            hedefSatir = hedefSatir + 1
        End If
    Next i
End Sub
 
Katılım
12 Temmuz 2021
Mesajlar
7
Excel Vers. ve Dili
Türkçe
Kod:
Sub DoluHucresiVeFormulsuzYazdir()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long
    Dim hedefSatir As Long
   
    ' Çalışma sayfasını belirle (örneğin, Sayfa1)
    Set ws = ThisWorkbook.Sheets("Sayfa1")
   
    ' A sütunundaki son satırı bul
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
   
    ' Hedef satırı belirle (örneğin, B sütununda yazdırmak istediğiniz ilk satır)
    hedefSatir = 1
   
    ' Dolu hücreleri ve formül olmayan hücreleri bul ve B sütununa yazdır
    For i = 1 To sonSatir
        If Not IsEmpty(ws.Cells(i, 1).Value) And Not ws.Cells(i, 1).HasFormula Then
            ws.Cells(hedefSatir, 2).Value = ws.Cells(i, 1).Value
            hedefSatir = hedefSatir + 1
        End If
    Next i
End Sub

Maalesef buda olmadı hata veriyor
 
Katılım
12 Temmuz 2021
Mesajlar
7
Excel Vers. ve Dili
Türkçe

dosyayı bu linke yükledim giriş sayfasındaki sarıçam tomruk makrosuna tıklayınca sorunsuz yazdırıyor fakat boş hücreleride yazdırma işlemine sokuyor bana sadece sarıçam sayfasındaki yazdırma alanlarında bulunan dolu hücreleri yazdırması lazım
 

MusaPEKEL

Altın Üye
Katılım
29 Ağustos 2016
Mesajlar
65
Excel Vers. ve Dili
2013
Altın Üyelik Bitiş Tarihi
16-01-2027
dosyayı yukarıdaki linkte belirttim. giriş sayfasındaki yazdır sarıçam yazısının altında bulunan tomruk makrosuna basınca sadece dolu hücreleri yazdırmasını istiyorum. şuan hepsini yazdırıyor
sayfa koruma şifresi iletebilirmisiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosya olmayınca kodları tahmini öneriyoruz. Bu sebeple olmamıştır.

Paylaştığınız dosyada S sütununda satırın dolu olması durumu kontrol edilebilir gibi görünüyor. Ben S sütununu kullandım. Siz gerekirse değiştirirsiniz.

C++:
Sub sarıçam()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Sayfa5.Activate
    Cells.EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AB$80"
    For Each Rng In Range("S5:S73")
        If Rng = 0 Then Rng.EntireRow.Hidden = True
    Next
    ActiveWindow.SelectedSheets.PrintOut
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub
 
Katılım
12 Temmuz 2021
Mesajlar
7
Excel Vers. ve Dili
Türkçe
Örnek dosya olmayınca kodları tahmini öneriyoruz. Bu sebeple olmamıştır.

Paylaştığınız dosyada S sütununda satırın dolu olması durumu kontrol edilebilir gibi görünüyor. Ben S sütununu kullandım. Siz gerekirse değiştirirsiniz.

C++:
Sub sarıçam()
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Sayfa5.Activate
    Cells.EntireRow.Hidden = False
    ActiveSheet.PageSetup.PrintArea = "$A$1:$AB$80"
    For Each Rng In Range("S5:S73")
        If Rng = 0 Then Rng.EntireRow.Hidden = True
    Next
    ActiveWindow.SelectedSheets.PrintOut
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

çok teşekkür ederim çok güzel olmuş elinize sağlık
 
Üst