• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan hsayar
  • Başlangıç tarihi Başlangıç tarihi
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.
 
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:
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.
 
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.
 
Selamlar,

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

Kod:
Sub SAY()
    MsgBox WorksheetFunction.CountA(Selection)
End Sub
 
Kod:
MsgBox Intersect(ActiveSheet.UsedRange, Selection).Count
&#304;&#351;inizi g&#246;r&#252;r m&#252;?
 
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.
 
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.
 
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
 
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,
 
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
 
korhan hocam te&#351;ekk&#252;rler yar&#305;n tekrar denereim.
 
Geri
Üst