Aktif Çalışma Sayfasındaki Dolu Hücre Sayısı

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Merhabalar
Excel Durum Çubupunda gözüken Say değeri makro ile nasıl tespit edilir?
Kod:
Sub DoluHucSay()
Cells.Selected
MsgBox Selected.Count
End Sub
şeklinde denedim ama hata veriyor.
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Sub SAY()
    MsgBox Selection.SpecialCells(xlCellTypeConstants, 23).Count 'Formül hariç dolu hücreleri sayar.
    MsgBox Selection.SpecialCells(xlCellTypeFormulas, 23).Count 'Formüllü hücreleri sayar.
End Sub

Alternatif olarak aşağıdaki koduda kullanabilirsiniz.

Kod:
Sub SAY()
    Dim Hücre As Range, Say As Long
    For Each Hücre In Selection
    If H&#252;cre.Value <> "" Then
    Say = Say + 1
    End If
    Next
    MsgBox Say
End Sub
 
Son düzenleme:
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Kod:
Sub DoluHucreSayisi()
 Cells.Select
 On Error Resume Next
 dolu = Selection.SpecialCells(xlCellTypeConstants, 23).Count + Selection.SpecialCells(xlCellTypeFormulas, 23).Count
MsgBox dolu
End Sub
hocam bu &#351;ekilde istedi&#287;im yani form&#252;ll&#252; yada form&#252;ls&#252;z dolu ise sonuca ula&#351;abiliyorum.
Bunu tek sat&#305;rda ve Dolu h&#252;cre yoksa dolu de&#287;i&#351;kenin 0 e&#351;itlenece&#287;i kod ne olmal&#305;.


Not 2 alternatifininiz baya uzun s&#252;rece&#287;i kanaatindeyim. &#246;zellikle 2007 i&#231;in.
 
Katılım
22 Nisan 2005
Mesajlar
486
Excel Vers. ve Dili
tarkan@tarkanvural.com.tr
Alternatif;

Se&#231;ili h&#252;creleri sayar.
Kod:
Sub say() 
MsgBox Selection.Cells.Count
End Sub
H&#252;cre i&#231;eriklerini denetlemek i&#231;in ayr&#305;ca kod takviyesi yazabilirsiniz.
 

Korhan Ayhan

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

A&#351;a&#287;&#305;daki kodu kullanabilirsiniz.

Kod:
Sub SAY()
    MsgBox WorksheetFunction.CountA(Selection)
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,607
Excel Vers. ve Dili
Pro Plus 2021
Kod:
MsgBox Intersect(ActiveSheet.UsedRange, Selection).Count
&#304;&#351;inizi g&#246;r&#252;r m&#252;?
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Sn Tarkan &#246;nerdi&#287;iniz y&#246;ntem Form&#252;lleri saym&#305;yor.

Amac&#305;m&#305; asl&#305;nda &#231;amkata fayda var...

Aktif excel &#231;al&#305;&#351;ma sayfas&#305;n&#305;n &#252;zerinde Dolu h&#252;cre, gizli h&#252;cre, Grafik, &#231;izim, metinkutusu, word art yada ba&#351;ka bir nesne varsa uyar&#305; almak.
 
Katılım
22 Nisan 2005
Mesajlar
486
Excel Vers. ve Dili
tarkan@tarkanvural.com.tr
hücre say

Formülleri saymaz, sadece seçili hücre adedini sayar.

Hücre içeriklerini denetlemek için ayrıca kod takviyesi yazabilirsiniz.
yazmıştım zaten.
Ama son mesajınızda işin boyutu değişti. Amaç ile çözümler birbirini tutmuyor.
Diğerlerini unutalım... Son mesajınıza göre çözüm üretmek gerek.
 

Korhan Ayhan

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

A&#351;a&#287;&#305;daki kod belki size fikir verebilir.

Kod:
Option Explicit
 
Sub SAY()
    Dim Say1 As Long, Say2 As Long, Say3 As Long
    Say1 = ActiveSheet.DrawingObjects.Count 'Objeler
    Say2 = WorksheetFunction.CountA(Cells) 'Dolu H&#252;creler
    Say3 = Cells.SpecialCells(xlCellTypeVisible).Count 'G&#246;r&#252;n&#252;r H&#252;creler
    MsgBox Say1 + Say2 + Say3
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Selamlar,

A&#351;a&#287;&#305;daki kod belki size fikir verebilir.

Kod:
Option Explicit
 
Sub SAY()
    Dim Say1 As Long, Say2 As Long, Say3 As Long
    Say1 = ActiveSheet.DrawingObjects.Count 'Objeler
    Say2 = WorksheetFunction.CountA(Cells) 'Dolu H&#252;creler
    Say3 = Cells.SpecialCells(xlCellTypeVisible).Count 'G&#246;r&#252;n&#252;r H&#252;creler
    MsgBox Say1 + Say2 + Say3
End Sub
hocam alakan&#305;za te&#351;ekk&#252;r ederim, direk g&#246;r&#252;nmez h&#252;creleri tespit etmek m&#252;mk&#252;n de&#287;il mi?
Excel 2007 de de 65536 sat&#305;r olayd&#305; 65536-g&#246;r&#252;n&#252;r der ge&#231;erdim ancak versiyon uyumlulu&#287;u i&#231;in g&#246;r&#252;nmezleri do&#287;rudan tespit edebilmek varsa daha iyi olacakt&#305;r.
Ayr&#305;ca Drawing objects sayfa &#252;zerindeki grafikleri dikkate alm&#305;yor.

sayg&#305;lar&#305;mla,
 

Korhan Ayhan

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

Gizli h&#252;creleri sayana direkt bir komutun oldu&#287;unu sanm&#305;yorum. Ayr&#305;ca "DrawingObjects" komutunu sayfada grafik olu&#351;turarak denedim ve 2003 versiyonunda olumlu sonu&#231; ald&#305;m. 2007 versiyonunda da sorun &#231;&#305;kartaca&#287;&#305;n&#305; sanm&#305;yorum.

Gizli sat&#305;rlar i&#231;in versiyon farkl&#305;l&#305;&#287;&#305;n&#305; g&#246;zard&#305; etmek i&#231;in a&#351;a&#287;&#305;daki kodu kullanabilirsiniz.

Kod:
Option Explicit
 
Sub G&#304;ZL&#304;_SATIR_SAYISI()
    Dim SAY As Long, SATIR As Long
    SATIR = IIf(Val(Application.Version) <= 11, 65536, 1048576)
    SAY = SATIR - [A:A].SpecialCells(xlCellTypeVisible).Count
    MsgBox SAY
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
korhan hocam te&#351;ekk&#252;rler yar&#305;n tekrar denereim.
 
Üst