• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan sains
  • Başlangıç tarihi Başlangıç tarihi
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
 
Deneyiniz.

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

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