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

ynmcan

Altın Üye
Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
29-05-2025
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

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
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
 

ynmcan

Altın Üye
Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
29-05-2025
Tamer bey teşekür ederim, emeğinize sağlık.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,638
Excel Vers. ve Dili
Pro Plus 2021
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.
 

ynmcan

Altın Üye
Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
29-05-2025
Veysel Bey, sonradan aklıma geldi ve dediğiniz gibi yaptım. Filitreleme kodlarını yeniden yazdım.
teşekkür ederim
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,156
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
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

tamer42

Destek Ekibi
Destek Ekibi
Katılım
11 Mart 2005
Mesajlar
3,039
Excel Vers. ve Dili
Office 2013 İngilizce
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:

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,156
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
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.
 
Üst