Skip to main content

Kutools for Office — Bir Paket. Beş Araç. Daha Fazla İş Yapın.

Excel'de bir grupta yalnızca bir onay kutusunun seçilmesine nasıl izin verilir?

Author Siluvia Last modified

Bazı Excel uygulamalarında, kullanıcıların bir grup onay kutusundan yalnızca bir seçeneği seçmelerine izin vermeniz gerekebilir—bu, radyo düğmelerinin davranışını taklit eder. Örneğin, aşağıdaki ekran görüntüsünde gösterildiği gibi, 2. satırdaki bir onay kutusunu işaretlediğinizde, gruptaki tüm diğer onay kutuları anında devre dışı kalır ve herhangi bir anda yalnızca tek bir seçeneğin mümkün olması sağlanır. Bu kısıtlama, birden fazla cevaba engel olmak istediğiniz anket formları, tek cevaplı seçim listeleri veya panolar için kullanışlıdır. Excel'de bu işlevselliği doğrudan gerçekleştirmek, VBA kodu kullanma gibi belirli teknikler gerektirir. Bu makale, Excel'deki onay kutularıyla "tek seçim" etkisini etkinleştirmek için pratik çözümler sunar ve gerçek dünya kullanımına yönelik adım adım talimatlar ve önemli hususlar içerir.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


Yalnızca bir onay kutusunun seçilmesini VBA kodu ile sağlayın

Aşağıdaki VBA yaklaşımını kullanarak bir grupta aynı anda yalnızca bir onay kutusunun seçilebilmesini sağlayabilirsiniz. Bu çözüm, özellikle karmaşık şablonlarda veya etkinleştirme/devre dışı bırakma mantığını kontrol etmenin önemli olduğu durumlarda sorunsuz ve otomatik bir deneyim gerektiğinde uygundur.

1. Tek bir seçimin zorlanmasını istediğiniz yerlere onay kutularını ekleyerek başlayın. Bu çözüm için, Form Kontrolleri onay kutuları doğrudan etkinleştirme/devre dışı bırakma mekanizmasını desteklemediği için ActiveX Kontrol onay kutuları kullanmanız gerekir. ActiveX onay kutularını eklemek için Geliştirici sekmesine gidin > Ekle > ActiveX Kontrolleri > Onay Kutusu. Aşağıda gösterildiği gibi, tüm onay kutularını istediğiniz gruba yerleştirin:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına birlikte basın.

3. Düzenleyici penceresinde, Ekle > Sınıf Modülü'ne tıklayın. Bu adım, birden fazla onay kutusu için olayları işlemek üzere yeni bir sınıf modülü oluşturur. Bir sınıf modülü kullanmak, mevcut kaç onay kutusu olursa olsun her bir onay kutusunun bireysel olarak tıklanmasına yanıt vermeyi mümkün kılar.

A screenshot showing the option to insert a Class Module in Excel VBA

4. Özellikler bölmesinde (genellikle solda) yeni sınıf modülünü bulun, üzerine tıklayın ve (Ad) kutusunda varsayılan değeri (örneğin Class1) ClsChk olarak değiştirin. Ardından, aşağıdaki kodu bu sınıf modülünün kod penceresine kopyalayıp yapıştırın. Referans olarak ekran görüntüsüne bakın:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

VBA kod1: Her seferde yalnızca bir onay kutusu seçin

Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub

Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then

    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Value = False
        xObj.Object.Enabled = False
      End If
    Next
Else
    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Enabled = True
      End If
    Next
End If
End Sub  

5. Daha sonra, Ekle > Modül'e tıklayarak standart bir kod modülü ekleyin. Aşağıdaki kodu modül penceresine kopyalayıp yapıştırın. Bu kod, yukarıda tanımlanan olay işleyicisine tüm onay kutularınızı "bağlayacak" ve başlatacaktır:

VBA kod2: Her seferde yalnızca bir onay kutusu seçin

Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
   Set xSht = ActiveSheet
   Set xCollection = Nothing
    For Each xObj In xSht.OLEObjects
        If xObj.Name Like "CheckBox**" Then
            Set xChk = New ClsChk
            Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
            xCollection.Add xChk
        End If
    Next
    Set xChk = Nothing
End Sub

6. Kodu çalıştırmak için F5'e basın, bu da onay kutusu grubunuz için tek seçim mantığını etkinleştirir. Herhangi bir kutuyu işaretleyerek davranışı test edin; tüm diğer kutular anında işaretlenmemiş ve devre dışı kalır. Geçerli seçiminizi kaldırırsanız, tüm onay kutuları yeniden etkinleştirilir ve farklı bir seçim yapabilirsiniz.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

Not: Grubunuza herhangi bir onay kutusu eklerseniz veya silerseniz, başlatma VBA'sını yeniden çalıştırmanız gerekir. Bunun nedeni, kod her çalıştırıldığında olay işleyicilerinin yenilenmesi ve kontrol grubundaki değişikliklerin VBA tarafından doğru şekilde tanınmasıdır.

Bu yöntemin avantajları arasında tam otomasyon yer alır—kullanıcılar yanlışlıkla birden fazla seçenek seçemez. Ancak, yalnızca ActiveX kontrolleriyle çalışır, bu da Excel sürümüyle sınırlı olabilir ve makroların etkinleştirilmesi gerekir. Ayrıca, ActiveX kontrolleri veya makrolar içeren çalışma kitaplarını diğer kullanıcılara dağıtmak ek güvenlik izinleri gerektirebilir.


İlgili makaleler:

En İyi Ofis Verimlilik Araçları

🤖 Kutools AI Asistanı: Veri analizinde devrim yaratın – Akıllı Yürütme | Kod Oluştur | Özel Formüller Oluştur | Verileri Analiz Et ve Grafikler Oluştur | Kutools Fonksiyonlarını Çağır
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya İşaretle | Boş Satırları Sil | Sütunları veya Hücreleri Veriyi Kaybetmeden Birleştir | Formül olmadan Yuvarla...
Süper ARA: Çoklu Kriter VLookup | Çoklu Değer VLookup | Çoklu sayfa araması | Bulanık Eşleme....
Gelişmiş Açılır Liste: Hızlıca Açılır Liste Oluştur | Bağımlı Açılır Liste | Çoklu seçimli Açılır Liste....
Sütun Yöneticisi: Belirli Sayıda Sütun Ekle | Sütunları Taşı | Gizli Sütunların Görünürlük Durumunu Değiştir | Aralıkları & Sütunları Karşılaştır...
Öne Çıkan Özellikler: Izgara Odaklama | Tasarım Görünümü | Gelişmiş formül çubuğu | Çalışma Kitabı & Çalışma Sayfası Yöneticisi | Otomatik Metin Kütüphanesi | Tarih Seçici | Veri Birleştir | Hücreleri Şifrele/Şifre Çöz | Listeye Göre E-posta Gönder | Süper Filtre | Özel Filtre (kalın/italik/üstü çizili filtreleme...)...
En İyi15 Araç Takımı:12 Metin Aracı (Metin Ekle, Belirli Karakterleri Sil, ...) | 50+ Grafik Türü (Gantt Grafiği, ...) | 40+ Pratik Formül (Doğum tarihine dayanarak yaş hesapla, ...) | 19 Ekleme Aracı (QR Kodu Ekle, Yoldan Resim Ekle, ...) | 12 Dönüşüm Aracı (Kelimeye Dönüştür, Para Birimi Dönüştürme, ...) | 7 Birleştirme & Bölme Aracı (Gelişmiş Satırları Birleştir, Hücreleri Böl, ...) | ... ve dahası
Kutools'u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve40+ diğer dili destekler!

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.

Excel Word Outlook Tabs PowerPoint
  • 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