• DİKKAT

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

bir sütundaki değeri sıfır olan hücrelerin olduğu satırı gizleme

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
merhaba, çok sekmeli bir excel dosyasında tüm çalışma sayfalarındaki U sütununun 9-250 arasında değeri 0 olan (hücreler içerisinde formül var ve sonuç sıfır çıkanlar) veya boş olan hücre değerlerinin olduğu tüm satırların gizlenmesi için makro arıyorum. aradım ama uygun olanı bulamadım.
 
Selamlar

Bir modül içine aşağıdaki kodları yazıp deneyiniz

Kod:
Sub Gizle()
Dim i As Integer, lr As Integer, ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sayfa1")
lr = ws.Range("U1048576").End(xlUp).Row

For i = 9 To 250
      If ws.Cells(i, "U").Value = "" Or Application.WorksheetFunction.CountA(Cells(i, "U").Value) = 0 Then
            ws.Cells(i, "U").EntireRow.Hidden = True
      End If
Next i
End Sub
 
Selamlar

Bir modül içine aşağıdaki kodları yazıp deneyiniz

Kod:
Sub Gizle()
Dim i As Integer, lr As Integer, ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sayfa1")
lr = ws.Range("U1048576").End(xlUp).Row

For i = 9 To 250
      If ws.Cells(i, "U").Value = "" Or Application.WorksheetFunction.CountA(Cells(i, "U").Value) = 0 Then
            ws.Cells(i, "U").EntireRow.Hidden = True
      End If
Next i
End Sub



Set ws = ThisWorkbook.Sheets("Sayfa1") Kısmı hata veriyor, sekmelerimin isimleri sayfa1 .... diye gitmiyor. ilgili olabilir mi?
 
Selamlar

("Sayfa1") kısmını sizin sayfanızın adı ne ise onu yazın
 
Muzaffer Beyin yazdığı kodu tüm sayfaya uyarlayabilirsiniz:
Kod:
Sub Gizle()
    Dim ws As Worksheet
    Dim i As Integer, lr As Integer

    For Each ws In ThisWorkbook.Sheets
        lr = ws.Cells(ws.Rows.Count, "U").End(xlUp).Row

        For i = 9 To lr
            If ws.Cells(i, "U").Value = "" Or Application.WorksheetFunction.CountA(ws.Cells(i, "U").Value) = 0 Then
                ws.Cells(i, "U").EntireRow.Hidden = True
            End If
        Next i
    Next ws
End Sub
 
Muzaffer Beyin yazdığı kodu tüm sayfaya uyarlayabilirsiniz:
Kod:
Sub Gizle()
    Dim ws As Worksheet
    Dim i As Integer, lr As Integer

    For Each ws In ThisWorkbook.Sheets
        lr = ws.Cells(ws.Rows.Count, "U").End(xlUp).Row

        For i = 9 To lr
            If ws.Cells(i, "U").Value = "" Or Application.WorksheetFunction.CountA(ws.Cells(i, "U").Value) = 0 Then
                ws.Cells(i, "U").EntireRow.Hidden = True
            End If
        Next i
    Next ws
End Sub

olmuyor maalesef. elle yapmaya başladım teşekkürler.
 
Kullandığınız formül önemli..

Yinede alternatif olarak aşağıdaki kodu deneyebilirsiniz.

C++:
Option Explicit

Sub Zero_Or_Blanks_Cells_Hidden_Row()
    Dim My_Sheet As Worksheet, Rng As Range, My_Area As Range
    
    Application.ScreenUpdating = False
    
    For Each My_Sheet In ThisWorkbook.Worksheets
        My_Sheet.Cells.EntireRow.Hidden = False
        
        For Each Rng In My_Sheet.Range("U9:U250")
            If Rng = 0 Or Rng = "" Then
                If My_Area Is Nothing Then
                    Set My_Area = Rng
                Else
                    Set My_Area = Union(Rng, My_Area)
                End If
            End If
        Next
        If Not My_Area Is Nothing Then
            My_Area.EntireRow.Hidden = True
            Set My_Area = Nothing
        End If
    Next
    
    Application.ScreenUpdating = True
    
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Kullandığınız formül önemli..

Yinede alternatif olarak aşağıdaki kodu deneyebilirsiniz.

C++:
Option Explicit

Sub Zero_Or_Blanks_Cells_Hidden_Row()
    Dim My_Sheet As Worksheet, Rng As Range, My_Area As Range
   
    Application.ScreenUpdating = False
   
    For Each My_Sheet In ThisWorkbook.Worksheets
        My_Sheet.Cells.EntireRow.Hidden = False
       
        For Each Rng In My_Sheet.Range("U9:U250")
            If Rng = 0 Or Rng = "" Then
                If My_Area Is Nothing Then
                    Set My_Area = Rng
                Else
                    Set My_Area = Union(Rng, My_Area)
                End If
            End If
        Next
        If Not My_Area Is Nothing Then
            My_Area.EntireRow.Hidden = True
            Set My_Area = Nothing
        End If
    Next
   
    Application.ScreenUpdating = True
   
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub

Bir Korhan Ayhan klasiği, çok teşekkürler. İşlem tamam.
 
Geri
Üst