Excel'de bir onay kutusu işaretlendiğinde başka bir onay kutusunun işaretini nasıl kaldırabilirsiniz?
Uzun bir satın alma listesini Excel'de yönetme gibi birçok pratik senaryoda, belirli bir kategori veya grupta yalnızca bir seçeneğin seçilebilmesini sağlamak isteyebileceğiniz durumlarla karşılaşabilirsiniz. Örneğin, belirli kategoriler bütçeyi aştığında, her grupta yalnızca bir tane kalacak şekilde öğeleri yeniden seçmeniz gerekebilir. Büyük listelerde onay kutularını manuel olarak yönetmek, özellikle kategori sayısının artmasıyla birlikte verimsiz ve hata yapmaya açık olabilir. Bu süreci hızlandırmak ve hataları azaltmak için, Excel'i, bir gruptaki yeni bir onay kutusu işaretlendiğinde daha önce işaretlenmiş olanın otomatik olarak işaretini kaldıracak şekilde ayarlayabilirsiniz; böylece her zaman her kategoride yalnızca tek bir seçim yapılmasını sağlayabilirsiniz. Bu makale, bunu nasıl başaracağınız konusunda adım adım bir rehber sunarak iş akışınızı daha verimli ve güvenilir hale getirir.
➤ VBA kodu ile yeni bir onay kutusu işaretlendiğinde başka bir onay kutusunun işaretini kaldırma
VBA kodu ile yeni bir onay kutusu işaretlendiğinde başka bir onay kutusunun işaretini kaldırma
Süreci açıklamak için yukarıdaki videoda gösterildiği gibi bir durumu ele alalım. CheckBox1'den CheckBox10'a kadar etiketlenmiş on onay kutunuz var ve bu kutular farklı satın alma kategorilerini temsil eden üç gruba ayrılmış durumda.
✅ Grup yapısı:
- Grup 1: CheckBox1, CheckBox2, CheckBox3
- Grup 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Grup 3: CheckBox8, CheckBox9, CheckBox10
Her grupta aynı anda yalnızca bir onay kutusu seçili olmalıdır. Yeni bir onay kutusu işaretlendiğinde, aynı gruptaki diğerleri otomatik olarak işaretlenmemiş olur—bu davranış radyo düğmelerine benzer ancak onay kutuları kullanılarak sağlanır.
🧩 VBA çözümünü uygulama adımları:
- VBA Editörünü Açın: Onay kutularının bulunduğu sayfa sekmesine sağ tıklayın ve ardından Kodu Görüntüle'yi seçin.
- Aşağıdaki kodu çalışma sayfasının kod penceresine yapıştırın:
- VBA Editörünü kapatın (Alt + Q) ve onay kutularını test etmek için Excel'e geri dönün.

Dim xBol As Boolean
'Updated by Extendoffice
Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
Private Function SetCheckBoxes(mCheckBoxName As String)
Dim xAllArr, xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
"CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
"CheckBox8,CheckBox9,CheckBox10")
For xI = LBound(xAllArr) To UBound(xAllArr)
If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
xBol = False
xArrItem = Split(xAllArr(xI), ",")
For xJ = LBound(xArrItem) To UBound(xArrItem)
If xArrItem(xJ) <> mCheckBoxName Then
Me.OLEObjects(xArrItem(xJ)).Object.Value = False
End If
Next
End If
Next
xBol = True
End Function
Private Sub Worksheet_Activate(): xBol = True: End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub
📌 Önemli Notlar:
- Onay kutusu Adı özelliklerinin (etiketler değil) koddaki adlarla tam olarak eşleştiğinden emin olun.
- Gruplamalar, dizi satırında tanımlanmıştır:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
- Bu VBA yalnızca ActiveX Kontrol onay kutularıyla çalışır, Form Kontrolleriyle çalışmaz.
- Bu otomasyonun çalışması için Makroların etkinleştirilmiş olması gerekir.
📺 Demo:
🔍 Sorun Giderme İpuçları:
- Yinelenen onay kutusu adlarının olmadığından emin olun.
- Tüm onay kutularının ActiveX Kontrolleri olduğundan emin olun.
- Her onay kutusu prosedürü,
SetCheckBoxes
'i doğru şekilde çağırmalıdır. - Çapraz sayfa senaryoları, sınıf modülleri veya merkezi kontrol aracılığıyla uyarlanmayı gerektirir.
💡 Alternatif Çözüm: Form Kontrollerinden Seçenek Düğmelerini, yerleşik tek seçim davranışı için kullanabilirsiniz. Ancak gelişmiş düzen ve mantık kontrolü için VBA + Onay Kutuları daha esnektir.
✨ İpucu: Kutools for Excel gibi araçlar, kod yazmadan kolay kurulum için GUI tabanlı onay kutusu yönetimi sunar.
Demo: Excel'de bir onay kutusu işaretlendiğinde başka bir onay kutusunun işaretini kaldırma
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin ve benzersiz bir verimlilik deneyimi yaşayın. Kutools for Excel, üretkenliği artırmak ve zamandan tasarruf etmek için300'den fazla Gelişmiş Özellik sunuyor. İhtiyacınız olan özelliği almak için buraya tıklayın...
Office Tab, Ofis uygulamalarına sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır.
- Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Yeni pencereler yerine aynı pencerede yeni sekmelerde birden fazla belge açıp oluşturun.
- Verimliliğinizi %50 artırır ve her gün yüzlerce mouse tıklaması azaltır!
Tüm Kutools eklentileri. Tek kurulum
Kutools for Office paketi, Excel, Word, Outlook & PowerPoint için eklentileri ve Office Tab Pro'yu bir araya getirir; Office uygulamalarında çalışan ekipler için ideal bir çözümdür.





- Hepsi bir arada paket — Excel, Word, Outlook & PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans — dakikalar içinde kurulun (MSI hazır)
- Birlikte daha verimli — Ofis uygulamalarında hızlı üretkenlik
- 30 günlük tam özellikli deneme — kayıt yok, kredi kartı yok
- En iyi değer — tek tek eklenti almak yerine tasarruf edin