Checkbox Select ALL

Katılım
21 Nisan 2009
Mesajlar
31
Excel Vers. ve Dili
Excel 2010 - İngilizce
Merhaba,
Dosyamda çok sayıda checkbox var ve bunlara hepsini seç ya da temizle yapmak istiyorum. Aşağıdaki kodla yapılabiliyor ama ben 1den 20ye kadar olan tüm checkboxları değil de örneğin 2, 5, 12, 18 numaralı checkboxları seçmek ya da temizlemek istiyorum.

Sub CheckAll()

Dim lngIndex As Long
Dim lngState As Long

lngState = ActiveSheet.Shapes("Check Box 21").ControlFormat.Value
For lngIndex = 1 To 20
With ActiveSheet
With .Shapes("Check Box " & lngIndex)
.ControlFormat.Value = lngState
End With
End With
Next

End Sub

Yardımınız için şimdiden teşekkürler.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,505
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Dosyamda çok sayıda checkbox var ve bunlara hepsini seç ya da temizle yapmak istiyorum. Aşağıdaki kodla yapılabiliyor ama ben 1den 20ye kadar olan tüm checkboxları değil de örneğin 2, 5, 12, 18 numaralı checkboxları seçmek ya da temizlemek istiyorum.

Yardımınız için şimdiden teşekkürler.

Merhaba,

Seçimi belli olanlar sabit ise olabilir ama her seferinde değişik seçim için tıklama gücü gerekli :)
 
Katılım
21 Nisan 2009
Mesajlar
31
Excel Vers. ve Dili
Excel 2010 - İngilizce
Merhaba,

Seçimi belli olanlar sabit ise olabilir ama her seferinde değişik seçim için tıklama gücü gerekli :)
Merhaba,
Seçmek istediğim tüm checkboxların numaralarını listeledim yani seçilecek olanlar sabit. Bu bir checklist ve her sorunun karşısında 0 ve 1 puan için checkboxlar var. Ben iki ayrı master checkbox kullanacağım; bir tanesi 0 olanları seçecek ya da temizleyecek bir tanesi de 1 olanları seçecek ya da temizleyecek. Yani seçmesini isteyeceğim boxların numaraları belli ve sabit.

Bu durumda kullanılabilecek bir kod var mıdır?

Teşekkürler
 

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Sub ÖZEL_CHECKBOX_AKTİF()
    Dim Nesne As OLEObject
    
    For Each Nesne In ActiveSheet.OLEObjects
        If Nesne.OLEType = 2 Then
            If TypeOf Nesne.Object Is MsForms.CheckBox Then
                If Nesne.Name = "CheckBox2" Or _
                    Nesne.Name = "CheckBox5" Or _
                    Nesne.Name = "CheckBox12" Or _
                    Nesne.Name = "CheckBox18" Then
                    Nesne.Object.Value = True
                Else
                    Nesne.Object.Value = False
                End If
            End If
        End If
    Next
End Sub
 
Katılım
21 Nisan 2009
Mesajlar
31
Excel Vers. ve Dili
Excel 2010 - İngilizce
Merhaba,
TypeOf Nesne.Object Is MsForms.CheckBox Then
satırında
Compile Error: User-difened type not defined

hatası alıyorum.
Bu satırda komutun hangi checkbox a bağlı olduğunun yazması gerektiğini düşünüyorum ama nasıl yazacağımı bulamadım. Yani örneğin 10 numaralı checkbox seçili ise 2, 5, 12, 18 numaralıların da seçilmesi gerekiyor. Bu şekilde bir kod oluşturabilirseniz ben devamını getirebilirim diye düşünüyorum.

Teşekkürler
 

Korhan Ayhan

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

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Katılım
21 Nisan 2009
Mesajlar
31
Excel Vers. ve Dili
Excel 2010 - İngilizce
Merhaba,
Bu dosyadaki boxların yanındaki metinlere göre kod oluşturduğunuzu anlıyorum. Benim dosyamdaki boxların yanında metin yazmıyor box numaralarını excelde formül çubuğunun yanındaki Name Boxta görüyorum. Ekte dosyamı gönderiyorum. Dosya ile daha net anlaşabileceğimizi umuyorum.
 

Ekli dosyalar

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
CheckBox'ları Form denetimi olarak değil de, Activex Denetimi olarak ekleyin.
Korhan Bey'in dosyasını kendi çalışmanıza uyarlayın.
 
Katılım
21 Nisan 2009
Mesajlar
31
Excel Vers. ve Dili
Excel 2010 - İngilizce
CheckBox'ları Form denetimi olarak değil de, Activex Denetimi olarak ekleyin.
Korhan Bey'in dosyasını kendi çalışmanıza uyarlayın.
Merhaba,
Bilgi için teşekkürler ama şöyle bir durum var, dosyamda yaklaşık 400 adet Form Denetimi olarak hazırlanmış ve belirli hücrelere linklenmiş box var ve bunları Activex Denetimi olarak eklediğimde bir hücreye linkleyemiyorum. Bu nedenle boxları Form Denetimi olarak eklemek zorundayım.

Form Denetimi olarak eklenmiş boxlara select all yapamıyor muyum?

Teşekkürler
 

Korhan Ayhan

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

Siz bu nesneleri hücrelere bağlamışsınız. Makro ile bu hücrelerin içeriğini sildiğinizde nesnelerin seçilmişlik durumu kalkacaktır. Bu şekilde deneyiniz.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,853
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Alternatif kod

Kod:
Sub sol()
Set s1 = Sheets("sayfa2")
Dim Picture As Object
For Each Picture In s1.Shapes
If TypeName(s1.Shapes(Picture.Name).OLEFormat.Object) = "CheckBox" Then
yer = Cells(Picture.BottomRightCell.Row, Picture.BottomRightCell.Column).Address
yer1 = Cells(Picture.BottomRightCell.Row, "d").Address
If Picture.BottomRightCell.Row >= 2 And Picture.BottomRightCell.Row <= 6 Then
If yer = yer1 Then
If s1.Shapes("Check Box 34").OLEFormat.Object.Value = xlOn Then
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOn
Else
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOff
End If
End If
End If
End If
Next Picture
End Sub


Kod:
Sub sog()
Set s1 = Sheets("sayfa2")
Dim Picture As Object
For Each Picture In s1.Shapes
If TypeName(s1.Shapes(Picture.Name).OLEFormat.Object) = "CheckBox" Then
yer = Cells(Picture.BottomRightCell.Row, Picture.BottomRightCell.Column).Address
yer1 = Cells(Picture.BottomRightCell.Row, "h").Address
If Picture.BottomRightCell.Row >= 2 And Picture.BottomRightCell.Row <= 6 Then
If yer = yer1 Then
If s1.Shapes("Check Box 38").OLEFormat.Object.Value = xlOn Then
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOn
Else
s1.Shapes(Picture.Name).OLEFormat.Object.Value = xlOff
End If
End If
End If
End If
Next Picture
End Sub
 

Ekli dosyalar

Üst