CheckBox'ların tamamını seçmek-seçimi temizlemek?

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

sayfamda 3 adet checkbox var. bunların tamamını bir buton ile seçmek ve diğer butonla tamamını temizlemek istiyorum. Forumda çok aradım. Fakat bulamadım.

HELP PLS!
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kod:
Private Sub CommandButton1_Click()
CheckBox1 = 1
CheckBox2 = 1
CheckBox3 = 1
End Sub

Private Sub CommandButton2_Click()
CheckBox1 = 0
CheckBox2 = 0
CheckBox3 = 0
End Sub
Şeklinde deneyiniz.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Tümünü onaylamak için,

Kod:
Sub Tumunu_Onayla()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
    If TypeOf sp.Object Is MSForms.CheckBox Then
       sp.Object.Value = [B][COLOR=blue]True
[/COLOR][/B]    End If
Next
End Sub
Tüm onayları kaldırmak için

Kod:
Sub Tumunu_Sil()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
    If TypeOf sp.Object Is MSForms.CheckBox Then
       sp.Object.Value = [B][COLOR=red]False[/COLOR][/B]
    End If
Next
End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Gönderdiğim örnek dosyada bunu yapabilir misiniz? Buradan alıp kodu çalıştıramıyorum bir türlü.

Çok rica edeceğim.
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,216
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Kod:
Private Sub CommandButton1_Click()
Dim I As Integer
For I = 1 To [COLOR="Blue"]5[/COLOR]'[COLOR="Blue"]Buradan istediğiniz kadar artırabilirsiniz.[/COLOR]
Controls("CheckBox" & I) = True
Next
End Sub
Private Sub CommandButton2_Click()
Dim I As Integer
For I = 1 To 5
Controls("CheckBox" & I) = False
Next
End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Çok ÇOK Teşekkür ederim. İyi ki varsınız.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Rica ederim. İşinize yaradığına sevindim.
 
Katılım
10 Eylül 2005
Mesajlar
97
Rica ederim. İşinize yaradığına sevindim.
Cevabınız için teşekkürler. Fakat bir sorunla karşılaşıyorum.

Butonu tıkladığımda "OLEObject sınıfının Object özelliği alınamıyor" şeklinde bir hata mesajı alıyorum. Ve sonrasında vermiş olduğunuz kodun içinde geçen "If TypeOf sp.Object Is MSForms.CheckBox Then" satırı sarı işareliyor. Nerede sorun var. Bir türlü tespit edemiyorum.
Lütfen yardım.
 
Katılım
10 Eylül 2005
Mesajlar
97
Şimdi sorunu tespit ettim. Sayfamda checkboxların dışında nesne olarak word belgesi de var. Bu word nesnelerini silince sorun düzeliyor. Fakat o word nesnelerinin sayfada kalması gerekiyor. Kodu sadece Checkbox'ı kapsayacak şekilde nasıl düzenleyebilirim, ya da word nesnesini dikkate almayacak şekilde nasıl düzenleyebilirim ?

Sub Tumunu_Onayla()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
If TypeOf sp.Object Is MSForms.CheckBox Then
sp.Object.Value = True
End If
Next
End Sub
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sayfa üzerine eklenen Wrod nesnesinden böyle bir hata kaynaklanacağını düşünmüyorum.

Kodlar, zaten sadece checkbox'lar üzerinde işlem yapmak üzere dizayn edildi. Word belgeleri oleobject olmasına karşın, objenin tipi Checkbox olmadığı için (tipi document'tir) değerlendirmeye alınmaz.

Eğer mümkünse, dosyanızı ekleyin, inceleyelim.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Şimdi sorunu tespit ettim. Sayfamda checkboxların dışında nesne olarak word belgesi de var. Bu word nesnelerini silince sorun düzeliyor. Fakat o word nesnelerinin sayfada kalması gerekiyor. Kodu sadece Checkbox'ı kapsayacak şekilde nasıl düzenleyebilirim, ya da word nesnesini dikkate almayacak şekilde nasıl düzenleyebilirim ?

Sub Tumunu_Onayla()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
If TypeOf sp.Object Is MSForms.CheckBox Then
sp.Object.Value = True
End If
Next
End Sub

Private Sub CommandButton1_Click()
For s = 1 To 24 "checkbox sayısı kadar giriniz"
Me.Controls("CheckBox" & s).Value = 0
Next
End Sub

BİRDE BÖYLE DENEYİNİZ.
 

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
Ekli dosyayı incelermisiniz.:cool:
Kod:
Sub cek_dogru()
Dim cb As Object
For Each cb In Sheets("Sayfa1").OLEObjects
    If TypeName(cb.Object) = "CheckBox" Then
        cb.Object.Value = True
    End If
Next cb

End Sub
Sub cek_yanlis()
Dim cb As Object
For Each cb In Sheets("Sayfa1").OLEObjects
    If TypeName(cb.Object) = "CheckBox" Then
        cb.Object.Value = False
    End If
Next cb

End Sub
 
Katılım
10 Eylül 2005
Mesajlar
97
Sayfa üzerine eklenen Wrod nesnesinden böyle bir hata kaynaklanacağını düşünmüyorum.

Kodlar, zaten sadece checkbox'lar üzerinde işlem yapmak üzere dizayn edildi. Word belgeleri oleobject olmasına karşın, objenin tipi Checkbox olmadığı için (tipi document'tir) değerlendirmeye alınmaz.

Eğer mümkünse, dosyanızı ekleyin, inceleyelim.
Merhaba,
Foruma girip dosyayı göderemedim. Şimdi gönderebiliyorum.
Bir kontrol edebilirseniz çok sevineceğim.
İyi akşamlar.
 

Korhan Ayhan

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

Aşağıdaki şekilde denermisiniz.

Kod:
Sub Tumunu_Onayla()
[COLOR=red]On Error Resume Next[/COLOR]
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
    If TypeOf sp.Object Is MSForms.CheckBox Then
       sp.Object.Value = True
    End If
Next
End Sub
 
Sub Tumunu_Sil()
[COLOR=red]On Error Resume Next[/COLOR]
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
    If TypeOf sp.Object Is MSForms.CheckBox Then
       sp.Object.Value = False
    End If
Next
End Sub
 
Son düzenleme:
Katılım
10 Eylül 2005
Mesajlar
97
Sorun çözüldü. Çok teşekkür ederim.
Son noktayı çok güzel koydunuz :)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Korhan bey'in dediği gibi de olur veya alternatif olarak;

Kod:
Sub Tumunu_Onayla()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
[COLOR=red]    If sp.OLEType = 2 Then[/COLOR]
        If TypeOf sp.Object Is msforms.CheckBox Then
            sp.Object.Value = True
        End If
[COLOR=red]    End If[/COLOR]
Next
End Sub
'------------------------
Sub Tumunu_Sil()
Dim sp As OLEObject
For Each sp In ActiveSheet.OLEObjects
[COLOR=red]    If sp.OLEType = 2 Then[/COLOR]
        If TypeOf sp.Object Is msforms.CheckBox Then
           sp.Object.Value = False
        End If
[COLOR=red]    End If[/COLOR]
Next
End Sub
 
Üst