• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan QNURi
  • Başlangıç tarihi Başlangıç tarihi
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!
 
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.
 
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
 
Gönderdiğim örnek dosyada bunu yapabilir misiniz? Buradan alıp kodu çalıştıramıyorum bir türlü.

Çok rica edeceğim.
 
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
 
Çok ÇOK Teşekkür ederim. İyi ki varsınız.
 
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.
 
Ş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
 
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.
 
Ş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.
 
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
 
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.
 
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:
Sorun çözüldü. Çok teşekkür ederim.
Son noktayı çok güzel koydunuz :)
 
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
 
Geri
Üst