• DİKKAT

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

Bir Chexboxu seçtiğimde diğer Chexboxlardaki seçimler kalksın

Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Merhaba arkadaşlar;

Userform üzerinde 12 adet Chexboxum var.

bunlar ile personelleri belli kriterlere göre filitreliyorum.

Bunlardan birini seçtiğimde ( chexbox.Value=True yaptığımda )

Diğer 11 adet Chexbox içinde seçtili olan var ise seçimi kalksın ( chexbox.Value=False olsun)

Her zaman seçili tek Chexbox olsun istiyorum.

Örnek Dosyam ekte
 

Ekli dosyalar

Merhaba arkadaşlar;

Userform üzerinde 12 adet Chexboxum var.

bunlar ile personelleri belli kriterlere göre filitreliyorum.

Bunlardan birini seçtiğimde ( chexbox.Value=True yaptığımda )

Diğer 11 adet Chexbox içinde seçtili olan var ise seçimi kalksın ( chexbox.Value=False olsun)

Her zaman seçili tek Chexbox olsun istiyorum.

Örnek Dosyam ekte

userform içinde her bir checkBox prosedürüne

Kod:
Private Sub CheckBox1_Click()
    ChcBoxClear CheckBox1.Caption
End Sub

Private Sub CheckBox2_Click()
    ChcBoxClear CheckBox2.Caption
End Sub
modül içine
Kod:
Sub ChcBoxClear(kap As String)

Dim ctrl As Control

For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "CheckBox" Then
        If ctrl.Caption <> kap Then
            ctrl.Value = False
        End If
        
    End If
Next

End Sub
 
Userform üzerinde 12 adet Chexboxum var.

Bunlardan birini seçtiğimde ( chexbox.Value=True yaptığımda )

Diğer 11 adet Chexbox içinde seçtili olan var ise seçimi kalksın ( chexbox.Value=False olsun)

Her zaman seçili tek Chexbox olsun istiyorum.
Bu iş için Option Button'u icat etmişler. Form üzerine bir adet Frame içerisine 12 adet Option Button koyarak kod yazmadan bahsettiğiniz işlemi gerçekleştirebilirsiniz.
 
Veysel Bey, sonradan aklıma geldi ve dediğiniz gibi yaptım. Filitreleme kodlarını yeniden yazdım.
teşekkür ederim
 
userform içinde her bir checkBox prosedürüne

Kod:
Private Sub CheckBox1_Click()
    ChcBoxClear CheckBox1.Caption
End Sub

Private Sub CheckBox2_Click()
    ChcBoxClear CheckBox2.Caption
End Sub
modül içine
Kod:
Sub ChcBoxClear(kap As String)

Dim ctrl As Control

For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "CheckBox" Then
        If ctrl.Caption <> kap Then
            ctrl.Value = False
        End If
       
    End If
Next

End Sub
Hocam öncelikle emeğinize sağlık. Bu benim de işime yaradı. İzninizle kodları kullanıyorum.
Ancak şöyle bir durum var.
AAAAAA seçiyorum, daha sonra BBBBB seçiyorum ilk tıklamada seçilmiyor. İlk tıklamada AAAAA gidiyor 2. kez tıklayınca BBBBB seçiliyor.
Bunun için yapılabilecek bir şey var mı?
 

Ekli dosyalar

Hocam öncelikle emeğinize sağlık. Bu benim de işime yaradı. İzninizle kodları kullanıyorum.
Ancak şöyle bir durum var.
AAAAAA seçiyorum, daha sonra BBBBB seçiyorum ilk tıklamada seçilmiyor. İlk tıklamada AAAAA gidiyor 2. kez tıklayınca BBBBB seçiliyor.
Bunun için yapılabilecek bir şey var mı?
bunun bir çok yöntemi olabilir, ama ilk aklıma gelen
Click olayını Change ile değiştirip, her bir chechbox olayını aşağıdaki gibi düzenleyebilirsiniz.
Alternatif-1:

Kod:
Private Sub CheckBox1_Change()
    If CheckBox1.Value = False Then Exit Sub
    ChcBoxClear CheckBox1.Caption
End Sub


Alternatif-2:

Kod:
Private Sub CheckBox1_Click()
    ChcBoxClear CheckBox1
End Sub
.............................................................

Sub ChcBoxClear(ctl As Control)

Dim ctrl As Control

If ctl = flase Then Exit Sub

For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "CheckBox" Then
       
        If ctrl.Name<> ctl.Name Then
            ctrl.Value = False
        End If
       
    End If
Next

End Sub
 

Ekli dosyalar

Son düzenleme:
bunun bir çok yöntemi olabilir, ama ilk aklıma gelen
Click olayını Change ile değiştirip, her bir chechbox olayını aşağıdaki gibi düzenleyebilirsiniz.
Alternatif-1:

Kod:
Private Sub CheckBox1_Change()
    If CheckBox1.Value = False Then Exit Sub
    ChcBoxClear CheckBox1.Caption
End Sub


Alternatif-2:

Kod:
Private Sub CheckBox1_Click()
    ChcBoxClear CheckBox1
End Sub
.............................................................

Sub ChcBoxClear(ctl As Control)

Dim ctrl As Control

If ctl = flase Then Exit Sub

For Each ctrl In UserForm1.Controls
    If TypeName(ctrl) = "CheckBox" Then
       
        If ctrl.Name<> ctl.NameThen
            ctrl.Value = False
        End If
       
    End If
Next

End Sub
Hocam çok teşekkür ederim. Fazlasıyla işimi gördü. Emeğinize sağlık.
 
Geri
Üst