Boş Hücreleri Gizlemek

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Merhaba arkadaşlar.

Aşağıdaki kodlar ile d5 ve ap5 hücrelerinden boş olanları gizliyor fakat döngü ile çok uzun sürüyor. 15 saniyede falan gizliyor. En altta kırmızı renkli olan kod satırı mantığı ile yapılabilir mi. Yardımcı olursanız çok sevinirim.

Function gizle()
Sheets("tablo").Select
Range("d5").Select
For sut = 20 To 39
If Cells(5, sut) = "" Then
For sut1 = 1 To 3
Columns(sut + sut1 - 1).EntireColumn.Hidden = True
Next
End If
Next




For sut = 20 To 39
If Cells(5, sut) = "" Then
'Range("d5:ap5").EntireColumn.Hidden = True
end if
next sut
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,053
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bahsettiğiniz aralıktaki hücreler gerçekten mi boş yoksa formül sonucu mu boş görünüyor?
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Bahsettiğiniz aralıktaki hücreler gerçekten mi boş yoksa formül sonucu mu boş görünüyor?
Diyelim Mart ayını seçtim Mart 1 D5 den başlıyor Mart 31 e kadar ay günlerini yazıyor. Ama D ile AP arasında 38 sütun var. Bazı aylarda bir iki gün bir önceki aydan, bir iki günde bir sonraki aylardan gün alınıyor. Alınmadığı aylardan boş kalan boş hücrelerin gizlenmesi gerekiyor.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Sorumu tekrar sormak istedim.
Korhan bey ilginize teşekkürler. Dosyam biraz büyük biraz da karışık olduğu için göndermek istemedim.

Dosyamı ekliyorum. Userform7 den başlangıç ve bitiş tarihleri girilecek. "Yeni Dosya Oluştur" denildiğinde, tablo sayfasında d5 den başlayıp ayın son gününe kadar gün isimleri yazılacak (Başlangıç tarihi 01.03.2023, Bitiş tarihi 31.03.2023 girilsin.) D5 den Ap5 arasındaki gün ismi yazılmayan sütunlar gizlenecek. Gizleme kodlarında Userform6 da Hücreleri Gizle ve Hücreleri Göster butonları var. Sorun Hücreleri Gizle de gizlemesi uzun sürüyor. Mevcut hali ile çalışıyor ama gizleme işlemini çok yavaş yapıyor.
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,053
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sorumda açık olmayan bir nokta varmı?
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Dosya açıldığında form9 outo open ile açılıyor. Yukarıdaki düğmelerden
Bahsettiğiniz aralıktaki hücreler gerçekten mi boş yoksa formül sonucu mu boş görünüyor?
D5:AP5 aralığındaki hücreler dolu ama
bazen ac ye kadar
bazen x e kadar
bazen aa ya kadar
bazen ag ye kadar dolu, ap ye kadar diğer hücreler boş oluyor. Girilen tarihlere göre değişiyor. Formül yok.
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Korhan bey kusura bakmayın biraz kızdırdım heralde. Sorumu tam olarak nasıl anlatacağımı bilemedim. İlginize çok teşekkür ederim.
Aşağıdaki kod ile gizleme işlemi hızlandı..

Sheets("tablo").Select
Range("d5").Select
For Each t In Range("d5:ap5").Cells
If t.Value = "" Then
t.EntireColumn.Hidden = True
End If
Next t
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,053
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kızmak ne haddimize...

Sadece sorduğum sorunun NET bir şekilde cevabını almaya çalışıyorum. Amacım vereceğiniz cevaba göre daha efektif bir cevap vermekti.

Ama malesef ben sorumu tekrarladıkça siz farklı yanıtlar verdiniz. En son 7 nolu mesajınızda son iki kelimenizde "FORMÜL YOK" ifadesini zorlada olsa sizden almayı başardım.

Formülle boş bırakma durumu yoksa döngü kurmanıza gerek yok. Aşağıdaki basit kod yardımıyla aralıktaki BOŞ hücreleri içeren sütunları hızlıca gizleyebilirsiniz. Döngü olmdığı için daha hızlı sonuç verecektir.

C++:
Sub Empty_Cells_EntireColumns_Hidden()
    Application.ScreenUpdating = False
    Range("D5:AO5").SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
    Application.ScreenUpdating = True
End Sub
 

ahmed_ummu

Altın Üye
Katılım
28 Mart 2011
Mesajlar
750
Excel Vers. ve Dili
Excel 2010 Professional Plus 64 Bit
Altın Üyelik Bitiş Tarihi
15-10-2026
Kızmak ne haddimize...

Sadece sorduğum sorunun NET bir şekilde cevabını almaya çalışıyorum. Amacım vereceğiniz cevaba göre daha efektif bir cevap vermekti.

Ama malesef ben sorumu tekrarladıkça siz farklı yanıtlar verdiniz. En son 7 nolu mesajınızda son iki kelimenizde "FORMÜL YOK" ifadesini zorlada olsa sizden almayı başardım.

Formülle boş bırakma durumu yoksa döngü kurmanıza gerek yok. Aşağıdaki basit kod yardımıyla aralıktaki BOŞ hücreleri içeren sütunları hızlıca gizleyebilirsiniz. Döngü olmdığı için daha hızlı sonuç verecektir.

C++:
Sub Empty_Cells_EntireColumns_Hidden()
    Application.ScreenUpdating = False
    Range("D5:AO5").SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
    Application.ScreenUpdating = True
End Sub
Teşekkürler Şimdi daha da hızlandı.
 
Üst