Kaç Checkbox seçili? CheckBox sayacı ?

Katılım
10 Eylül 2005
Mesajlar
97
Merhaba arkadaşlar,

Excel sayfamda 75 tane checkbox var. Kullanıcı bunlardan istediklerini işaretleyecek. Kaç adet checkbox2ın işaretlendiğini rakam olarak bir hücrede yada başka bir yerde göstermek istiyorum. Bunu nasıl yaparım.

Örnek A1 Hücresinde kaç checkbox seçildiyse ona ait toplam rakam değeri gelsin. Ben o değeri alır istediğim yerde kullanırım.

Saygılar.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
İşaretli çekboxların sayısını a1 hücresine yazar.:cool:
Kod:
Sub cekbox()
Dim cb As Object
Range("A1").ClearContents
For Each cb In Sheets("Sayfa1").OLEObjects
    If cb.Object.Value = True Then
        Range("A1").Value = Range("A1").Value + 1
    End If
Next cb
End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Evren Bey çok teşekkürler.

Ekli dosyada yapabilir misiniz? Ben beceremedim.
:)
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Aşağıdaki kırmızı satırı değiştiriniz.:cool:
Kod:
Sub cekbox()
Dim cb As Object
Range("A1").ClearContents
For Each cb In [B][COLOR="Red"]ActiveSheet[/COLOR][/B].OLEObjects
     If cb.Object.Value = True Then
         Range("A1").Value = Range("A1").Value + 1
     End If
Next cb
End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Evren Bey,

Gönderdiğiniz kod doğru şekilde çalışıyor. Ancak her checkBox seçiminden sonra kodu manuel olarak çalıştırmanız gerekiyor. Beklenen olay ; checkbox seçilince sayı otomatik olarak bir artsın. Seçim kaldırılınca otomatik olarak bir azalsın. Yani kodun her tıklamada kendi kendine çalışması gerekiyor.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren Bey,

Gönderdiğiniz kod doğru şekilde çalışıyor. Ancak her checkBox seçiminden sonra kodu manuel olarak çalıştırmanız gerekiyor. Beklenen olay ; checkbox seçilince sayı otomatik olarak bir artsın. Seçim kaldırılınca otomatik olarak bir azalsın. Yani kodun her tıklamada kendi kendine çalışması gerekiyor.
Dosyanız ekte.
Kodları checkboxların click olayına yazdım.
ClassModüle uygulanarak kodlar kısaltılabilir.Onuda bilen bir arkadaş yaparsa öğrenmiş oluruz.
Dosya ekte.:cool:
 
Katılım
10 Eylül 2005
Mesajlar
97
CheckBox sayacı ?

Dosyanız ekte.
Kodları checkboxların click olayına yazdım.
ClassModüle uygulanarak kodlar kısaltılabilir.Onuda bilen bir arkadaş yaparsa öğrenmiş oluruz.
Dosya ekte.:cool:

Evren Bey,

Sayfada 75 tane checkbox var. Her biri için kod yazmaktansa, bunun daha kolay bir yolu olmalı. AMA NASIL :)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekli dosyayı inceleyin.
 
Katılım
10 Eylül 2005
Mesajlar
97
Ekli dosyayı inceleyin.
Teşekkürler Levent Bey,

Gönderdiğiniz dosya doğru çalışıyor. Gönderdiğiniz dosyadan aynı şekilde kodu alarak kendi excel dosyama alıyorum. Dosyayı kapatıp açtığımda aşağıdaki şekilde hata mesajı alıyorum.

Dosyamda sayfa koruması yok. Ancak kod sayfası korumalı. Bundan dolayı olabilir mi?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Levent bey classmodül kodları için teşekkür ederim.
yavaş yavaş galiba clasmodülün çalışma prensiplerini anlamaya başlıyorum.
İyi geceler.:)
 
Katılım
10 Eylül 2005
Mesajlar
97
Levent Menteşoğlu;308069' Alıntı:
Hayır bundan olmaz. Sebebi bulmak için dosyanızı eklemenizi öneririm.
Levent Bey,
Dosyayı göndermeden önce aşağıdaki koda bakabilir misiniz? Workbook sayfasında aşağıdaki ko var. Bu kod sebebiyle olabilir mi?

Dim ch() As New Class1
Private Sub Workbook_Open()
say = ActiveSheet.Shapes.Count
ReDim Preserve ch(say)
For a = 1 To say
tip1 = TypeName(ActiveSheet.Shapes(a).OLEFormat.Object)
If tip1 <> "OLEObject" Then GoTo 10
tip2 = TypeName(ActiveSheet.Shapes(a).OLEFormat.Object.Object)
If tip2 = "CheckBox" Then
c = c + 1
Set ch(c).ch = ActiveSheet.Shapes(a).OLEFormat.Object.Object
End If
10 Next
End Sub


Private Sub Workbook_Open()

If Date >= CDate("01.10.2008") Then
Call Tarih
MsgBox "&#214;deme tutarlar&#305; de&#287;i&#351;ti&#287;inden, bu dosyan&#305;n kullan&#305;m&#305;na izin verilmemektedir. L&#252;tfen g&#252;ncel tarihli dosya talep ediniz!!", vbCritical, "D&#304;KKAT"
End If
End Sub


NOT : &#199;al&#305;&#351;ma dosyas&#305;n&#305; buradan g&#246;ndemek istemiyorum. &#214;zel bir &#231;al&#305;&#351;ma oldu&#287;u i&#231;in. Ama isterseniz mail g&#246;nderebilirim.

centaurconstantine@gmail.com
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Kesinlikle bundan ayn&#305; isimde iki prosed&#252;r olamaz. &#304;ki pros&#252;d&#252;r&#252; a&#351;a&#287;&#305;daki gibi birle&#351;tirin.

Kod:
Dim ch() As New Class1
Private Sub Workbook_Open()
If Date >= CDate("01.10.2008") Then
Call Tarih
MsgBox "&#214;deme tutarlar&#305; de&#287;i&#351;ti&#287;inden, bu dosyan&#305;n kullan&#305;m&#305;na izin verilmemektedir. L&#252;tfen g&#252;ncel tarihli dosya talep ediniz!!", vbCritical, "D&#304;KKAT"
exit sub
End If
say = ActiveSheet.Shapes.Count
ReDim Preserve ch(say)
For a = 1 To say
tip1 = TypeName(ActiveSheet.Shapes(a).OLEFormat.Object)
If tip1 <> "OLEObject" Then GoTo 10
tip2 = TypeName(ActiveSheet.Shapes(a).OLEFormat.Object.Object)
If tip2 = "CheckBox" Then
c = c + 1
Set ch(c).ch = ActiveSheet.Shapes(a).OLEFormat.Object.Object
End If
10 Next
End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Levent Bey,

Dosyanın açılışı sırasında bu kez başka bir hata mesajı alıyorum. Mesaj ekte...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Yorum yapmak zor. Dosyan&#305;z&#305; sadece checkboxlar kalacak &#351;ekilde d&#252;zenleyerek ekleyin.
 
Katılım
10 Eylül 2005
Mesajlar
97
Yorum yapmak zor. Dosyanızı sadece checkboxlar kalacak şekilde düzenleyerek ekleyin.
Anladım. Ama bu imkansız. Çünkü sayfada 75 tane checkbox ve 3 tane CommandButton , ayrıca 4 tane de combobox var.

Sorunu anladım. Diğer nesneleri de saymaya çalışıyor. ama onlar sayılamaıyor. Hata bunda galiba.
Bunları kaldırmam malesef imkansız. Başka bir çözüm olamaz mı? Sadece checkboxların sayılması mümkün olamaz mı? Gruplasak? Tipini değiştirsek? Ne yapsak :)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayfadaki di&#287;er nesneler kodun &#231;al&#305;&#351;mas&#305;n&#305; etkilemez. &#199;&#252;nk&#252; kodu sadece checkboxlar&#305; dikkate alacak &#351;ekilde d&#252;zenledim. Birde checkboxlar&#305;n bulundu&#287;u sayfan&#305;n aktif sayfa olarak a&#231;&#305;lmas&#305;na dikkat edin.
 
Katılım
10 Eylül 2005
Mesajlar
97
Sayfadaki diğer nesneler kodun çalışmasını etkilemez. Çünkü kodu sadece checkboxları dikkate alacak şekilde düzenledim. Birde checkboxların bulunduğu sayfanın aktif sayfa olarak açılmasına dikkat edin.
Levent Bey,

Sorunun neden kaynaklandığını buldum. Excel sayfasının içinde word dökümanı eklediğimiz zaman bu sorunla karşılaşıyoruz. Word dökümanını eklemek yerine metin kutusu eklendiğinde sorun ortadan kalkıyor. Word dökümanı kalsa da ,yine de bir çözümü olmalı diye düşünüyorum.

Alakanız için çok teşekkürler. İyi geceler.
 
Üst