• DİKKAT

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

Checkbox döngüsü hk

Katılım
17 Kasım 2009
Mesajlar
295
Excel Vers. ve Dili
2010
Merhaba arkadaşlar
Userformda 20 adet CheckBox var
bunlardan 10 tanesini A diğer 10 tanesini B olarak isimlerini değiştirdim.

a1 checkbox seçtiğimde karşısında olan b1 checkbox pasif olsun.
bunları döngü olarak nasıl yapabilirim.
 
Örnek dosya yollarsanız daha çabuk yanıt alabilirsiniz.:cool:
 
Merhaba arkadaşlar
Userformda 20 adet CheckBox var
bunlardan 10 tanesini abc diğer 10 tanesini cba olarak isimlerini değiştirdim.

abc1 checkbox seçtiğimde karşısında olan cba1 checkbox pasif olsun.
bunları döngü olarak nasıl yapabilirim.

örnek dosya ektedir
 

Ekli dosyalar

Bir class modül oluşturun, aşağıdaki kodları yapıştırın
Kod:
Public WithEvents txt As MSForms.CheckBox
Public ctr As MSForms.Controls
Private Sub txt_Click()
ad = Left(txt.Name, 3)
If ad = "abc" Then
Kar = "cba"
Else
Kar = "abc"
End If
sayi = Right(txt.Name, Len(txt.Name) - 3)
If txt.Value = True Then
ctr(Kar & sayi).Enabled = False
Else
ctr(Kar & sayi).Enabled = True
End If
End Sub
Formun kod sayfasına ise aşağıdaki kodları yapıştırın.
Kod:
Dim yaz() As New Class1
Private Sub UserForm_Initialize()
 Dim say As Integer
    Dim ctl As Control
    say = 0
    For Each ctl In Me.Controls
        If TypeName(ctl) = "CheckBox" Then
                say = say + 1
                ReDim Preserve yaz(1 To say)
               Set yaz(say).txt = ctl
End If
 Set yaz(say).ctr = Me.Controls
    Next ctl
End Sub
abc veya cba ile başlayan CheckBox'ları tıklayıp true hale getirince karşısındaki CheckBox'ları pasifleştiriyor. Tersi işlemde ise Aktifleştiriyor.
 
çok teşekkür ederim yardımın için fakat variable not defined verdi ReDim Preserve yaz (1 to say)
 
Son düzenleme:
Merhaba kendi dosyamda deneyince hata veriyor

Compile error
variable not defined
 
Örnek dosyanızı bir dosya paylaşım sitesine eklerseniz. bakayım.
 
Ben Altın üye değilim. Örnek dosyanızı forma değil paylaşım sitesine ekleyin.
 
dosya için teşekkür ederim ilk başta çalıştı virüs olarak algıladı ve sildi kodlarda nerede hata yapmışım bulamadım
 
Sizin hatanız yok.
Kod:
Set yaz(say).ctr = Me.Controls
satırını if yapısının içine aldım. (End if in hemen üstüne) Çünkü ctr nin sadece CheckBox larda geçerli olması gerekiyor. Benim ilk örneğimde TextBox olmadığı için sorun çıkarmıyordu
Kod:
Dim yaz() As New Class1
satırını ise Modül sayfasının en başına aldım.
 
Son düzenleme:
Merhaba son dosyayı denedim sadece 1.kutuyu işaretleyince işe yarıyor diğer kutularda olmuyor
 
dosya2'yi şimdi tekrar denedim, sorunsuz çalışıyor.
"1.kutuyu işaretleyince" derken kastınız nedir.
 
Evet haklısınız. Textboxlarla uğraşırken CheckBoxlarda sorun çıkmış.
 
Geri
Üst