Özellik ikonu

Range.Hidden

İndirme izni yok

Genel Bakış

Range.Hidden (Range.Hidden property), bir Range nesnesindeki satırların veya sütunların gizli olup olmadığını bildiren okunur ve yazılır bir özelliktir. Değeri True yapınca satırlar ya da sütunlar gizlenir, False yapınca yeniden görünür. Raporları hazırlarken ara hesap sütunlarını saklamak veya koşula uyan satırları gizlemek için sık kullanılır.

Söz dizimi​

Özellik, bir Range nesnesi üzerinden okunur ve değer atanır:
VBA 6 satır
' Okuma
sonuc = ifade.Hidden

' Yazma
ifade.Hidden = True   ' gizler
ifade.Hidden = False  ' gösterir
  • ifade: Range türünde bir nesne ifadesidir; Rows(3), Columns("D"), Range("A2:A5").EntireRow gibi tam satır veya tam sütun başvurusu olmalıdır. Zorunludur.
  • Hidden: Variant türünde değer döndürür veya alır; True gizli, False görünür anlamına gelir.

Dönüş değeri ve davranış​

Özelliğin okunan değeri aralığın durumuna göre değişir:
  • True: Aralıktaki tüm satırlar veya sütunlar gizlidir.
  • False: Aralıktaki tüm satırlar veya sütunlar görünürdür.
  • Karışık aralık: Aralıkta hem gizli hem görünür satırlar ya da sütunlar varsa sonuç tek başına güvenilir bir gizli/görünür bilgisi vermeyebilir. Örnek 3'te 3. satır gizliyken 2:4 aralığı için IsNull denetimi YANLIŞ sonuç verdi. Bu nedenle karışık aralıklarda sonucu Variant bir değişkene alın, IsNull işleviyle denetleyin ve kesin sonuç gerekiyorsa satırları tek tek okuyun.
Aralık tam satır veya tam sütun değilse (örneğin yalnızca Range("A1")) özellik okunurken ya da yazılırken 1004 numaralı çalışma zamanı hatası oluşur. Bu durumda EntireRow veya EntireColumn özelliğini kullanın.

Gizleme ile ilgili ayrıntılar​

Elle yaptığınız Giriş > Hücreler > Biçim > Gizle ve Göster > Satırları Gizle (Home > Cells > Format > Hide & Unhide > Hide Rows) işlemi ile Hidden özelliğini True yapmak aynı sonucu verir. Filtre ile gizlenen satırlar için de Hidden True döner. Satır yüksekliğini ya da sütun genişliğini sıfırlamak da satır veya sütunu gizlenmiş gösterir; bu nedenle RowHeight ve ColumnWidth özellikleriyle birlikte düşünün.

Gizli satırlardaki hücrelere VBA ile yazabilir ve oradan okuyabilirsiniz; gizleme yalnızca görünümü etkiler, veriyi silmez. Çok sayıda satırı tek tek gizlemek yerine, gizlenecek satırları bir aralıkta toplayıp tek seferde gizlemek makroyu hızlandırır.

1. Sütunu gizleme ve durumunu okuma​

Maliyet sütununu (D) raporu paylaşmadan önce gizlemek istiyorsunuz. Aşağıdaki kodu standart bir modüle yapıştırın. Makro D sütununu gizler, ardından D ve C sütunlarının Hidden değerini E2 ve E3 hücrelerine yazar.

TABLO (hücre = Excel'in gösterdiği değer):
A1 = Ürün
A2 = Klavye
A3 = Fare
A4 = Monitör
A5 = Yazıcı
B1 = Bölge
B2 = İstanbul
B3 = Ankara
B4 = İzmir
B5 = Bursa
C1 = Adet
C2 = 120
C3 = 200
C4 = 45
C5 = 30
D1 = Maliyet
D2 = 45,50
D3 = 22,75
D4 = 1.850,00
D5 = 2.400,00
E1 = Sonuç
E2 = DOĞRU
E3 = YANLIŞ
E4 =
E5 =
VBA 13 satır
Option Explicit

Sub SutunGizle()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ' Maliyet sütununu gizle
    ws.Columns("D").Hidden = True

    ' Durumları sonuç hücrelerine yaz
    ws.Range("E2").Value = ws.Columns("D").Hidden
    ws.Range("E3").Value = ws.Columns("C").Hidden
End Sub
Range.Hidden
Formülünü incelemek için bir hücre seçin.
ABCDE
1ÜrünBölgeAdetMaliyetSonuç
2Klavyeİstanbul12045,50DOĞRU
3FareAnkara20022,75YANLIŞ
4Monitörİzmir451.850,00
5YazıcıBursa302.400,00
Satış RaporuExcelDepo v1.0.0
Makro D sütununu gizledi. E2 hücresindeki DOĞRU değeri D sütununun gizli olduğunu, E3 hücresindeki YANLIŞ değeri ise C sütununun görünür olduğunu gösterir. Sütunu yeniden göstermek için aynı satırda True yerine False yazın.

2. Koşula göre satır gizleme​

Durumu Pasif olan personelin satırlarını gizlemek istiyorsunuz. Kodu standart bir modüle yapıştırın. Makro önce Pasif satırları gizler, sonra her satırın Hidden değerini D sütununa yazar.

TABLO (hücre = Excel'in gösterdiği değer):
A1 = Ad
A2 = Ahmet Yılmaz
A3 = Ayşe Demir
A4 = Mehmet Kaya
A5 = Fatma Çelik
A6 = Ali Şahin
A7 = Zeynep Arslan
A8 = Mustafa Öztürk
A9 = Elif Aydın
B1 = Departman
B2 = Muhasebe
B3 = İnsan Kaynakları
B4 = Satış
B5 = Lojistik
B6 = Satış
B7 = Muhasebe
B8 = İnsan Kaynakları
B9 = Lojistik
C1 = Durum
C2 = Aktif
C3 = Pasif
C4 = Aktif
C5 = Pasif
C6 = Aktif
C7 = Aktif
C8 = Pasif
C9 = Aktif
D1 = Satır Gizli mi
D2 = YANLIŞ
D3 = DOĞRU
D4 = YANLIŞ
D5 = DOĞRU
D6 = YANLIŞ
D7 = YANLIŞ
D8 = DOĞRU
D9 = YANLIŞ
VBA 19 satır
Option Explicit

Sub PasifSatirlariGizle()
    Dim ws As Worksheet
    Dim i As Long
    Set ws = ActiveSheet

    ' 2. ile 9. satırlar arasında Pasif olanları gizle
    For i = 2 To 9
        If ws.Cells(i, 3).Value = "Pasif" Then
            ws.Rows(i).Hidden = True
        End If
    Next i

    ' Her satırın gizli olup olmadığını D sütununa yaz
    For i = 2 To 9
        ws.Cells(i, 4).Value = ws.Rows(i).Hidden
    Next i
End Sub
Range.Hidden
Formülünü incelemek için bir hücre seçin.
ABCD
1AdDepartmanDurumSatır Gizli mi
2Ahmet YılmazMuhasebeAktifYANLIŞ
3Ayşe Demirİnsan KaynaklarıPasifDOĞRU
4Mehmet KayaSatışAktifYANLIŞ
5Fatma ÇelikLojistikPasifDOĞRU
6Ali ŞahinSatışAktifYANLIŞ
7Zeynep ArslanMuhasebeAktifYANLIŞ
8Mustafa Öztürkİnsan KaynaklarıPasifDOĞRU
9Elif AydınLojistikAktifYANLIŞ
Personel ListesiExcelDepo v1.0.0
D sütunundaki değerler her satırın gizli olup olmadığını gösterir; örneğin 2. satır için YANLIŞ, 3. satır için DOĞRU yazılmıştır. Pasif durumundaki satırlar gizlendiği için sayfada görünmez, ancak verileri silinmemiştir.

3. Karışık aralıkta Null sonucu​

Bir aralıkta hem gizli hem görünür satır olduğunda Hidden özelliğinin nasıl davrandığını sınamak istiyorsunuz. Kodu standart bir modüle yapıştırın. Makro 3. satırı gizler, 2:4 aralığını IsNull ile denetler, sonra satırı yeniden gösterip durumunu yazar.

TABLO (hücre = Excel'in gösterdiği değer):
A1 = Ay
A2 = Ocak
A3 = Şubat
A4 = Mart
A5 = Nisan
A6 = Mayıs
B1 = Gider
B2 = 12.500,00
B3 = 11.800,00
B4 = 13.200,00
B5 = 12.950,00
B6 = 14.100,00
C1 = Sonuç
C2 = YANLIŞ
C3 = DOĞRU
C4 = YANLIŞ
C5 =
C6 =
VBA 19 satır
Option Explicit

Sub KarisikAraligiDene()
    Dim ws As Worksheet
    Set ws = ActiveSheet

    ' Yalnızca 3. satırı gizle
    ws.Rows(3).Hidden = True

    ' 2:4 aralığında karışık durum var mı? (Null ise True)
    ws.Range("C2").Value = IsNull(ws.Rows("2:4").Hidden)

    ' 3. satır şu an gizli
    ws.Range("C3").Value = ws.Rows(3).Hidden

    ' Satırı yeniden göster ve durumunu yaz
    ws.Rows(3).Hidden = False
    ws.Range("C4").Value = ws.Rows(3).Hidden
End Sub
Range.Hidden
Formülünü incelemek için bir hücre seçin.
ABC
1AyGiderSonuç
2Ocak12.500,00YANLIŞ
3Şubat11.800,00DOĞRU
4Mart13.200,00YANLIŞ
5Nisan12.950,00
6Mayıs14.100,00
Aylık GiderExcelDepo v1.0.0
C2 hücresindeki YANLIŞ değeri, 2:4 aralığında IsNull denetiminin sonucudur; bu çalıştırmada denetim Null saptamadı, yani karışık aralıkta Null dönmesine güvenmemelisiniz. C3 hücresindeki DOĞRU değeri 3. satır gizliyken, C4 hücresindeki YANLIŞ değeri satır yeniden gösterildikten sonra okunmuştur. Sonuçta tüm satırlar görünür durumda kalır.

Kullanırken dikkat edin​

  • Tek hücre başvurusu hata verir: Range("A1").Hidden = True gibi bir ifade 1004 numaralı hataya yol açar. Her zaman Rows(...), Columns(...), EntireRow veya EntireColumn ile tam satır ya da sütun başvurusu kullanın; örneğin Range("A1").EntireRow.Hidden = True.
  • Null değerini unutmayın: Karışık bir aralıkta Hidden sonucunun Null olacağını varsaymayın; Örnek 3'te 2:4 aralığı için IsNull denetimi YANLIŞ sonuç verdi. Sonucu Boolean türünde bir değişkene atamak yerine değişkeni Variant tanımlayın ve önce IsNull ile denetleyin. Kesin sonuç gerekiyorsa satırları tek tek okuyun.
  • Filtre ve gruplama ile birlikte: Filtre uygulanmış satırlar da Hidden = True döndürür. Filtreyi kaldırmak için Hidden özelliğini değiştirmek yerine AutoFilter veya ShowAllData yöntemlerini kullanın. Gruplanmış (Veri > Anahat) satırlarda da gizleme Hidden ile okunabilir.
  • Gizli veriler formüllerde kullanılır: Gizlenen satır ve sütunlardaki veriler hesaplamalara dahil olmaya devam eder. Yalnızca görünen satırları toplamak istiyorsanız ALTTOPLAM işlevini kullanın.
  • İlgili konular: Range.EntireRow, Range.EntireColumn, Range.RowHeight, Range.ColumnWidth, Range.Group, Range.AutoFilter, Range.SpecialCells (xlCellTypeVisible), IsNull işlevi, ALTTOPLAM işlevi.
Örneklerdeki makroların tamamı indirilebilir Excel dosyasındadır (.xlsm). Dosyayı açtıktan sonra makroları etkinleştirin, ardından Alt + F11 ile Visual Basic Düzenleyicisi'nde kodları inceleyebilir ve Alt + F8 ile çalıştırabilirsiniz.
Yazar
ExcelDepo
İndirme sayısı
0
Gösterim
13
İlk yayın
Güncel

Puanlar

0.00 Oylama 0 İnceleme
Geri
Üst