Skip to main content

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

Author: Siluvia Last Modified: 2025-06-10

Aşağıdaki ekran görüntüsünde gösterildiği gibi, satır 2'de listelenen bir grup onay kutusu için, bir onay kutusu seçildiğinde veya işaretlendiğinde diğer tüm onay kutuları otomatik olarak devre dışı kalır. Bunu nasıl başarabilirsiniz? Bu makaledeki VBA kodu size yardımcı olabilir.

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

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


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

Aşağıdaki VBA kodlarını çalıştırarak bir onay kutusu grubunda aynı anda yalnızca bir onay kutusu seçebilirsiniz. Lütfen aşağıdaki adımları izleyin.

1. İlk olarak, ihtiyacınız olan onay kutularını ekleyin. Burada, aşağıdaki ekran görüntüsünde gösterildiği gibi ActiveX Control onay kutularını eklemelisiniz:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Ardından, Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına aynı anda basın.

3. Açılan Microsoft Visual Basic for Applications penceresinde, Ekle > Sınıf Modülü'ne tıklayın.

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

4. Özellikler bölmesindeki (Ad) kutusunda sınıf adını ClsChk olarak değiştirin ve ardından aşağıdaki VBA kodunu ilgili Kod penceresine kopyalayıp yapıştırın. Ekran görüntüsüne bakın:

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

VBA kodu 1: Aynı anda 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. Şimdi Ekle > Modül'e tıklayın, ardından aşağıdaki VBA kodunu Modül penceresine kopyalayıp yapıştırın.

VBA kodu 2: Aynı anda 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 tuşuna basın.

Şimdi itibaren, çalışma sayfasındaki herhangi bir onay kutusu işaretlendiğinde, tüm diğer onay kutuları otomatik olarak devre dışı kalır ve onu tekrar etkinleştirmek için işareti kaldırabilirsiniz.

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

Not: Yeni bir onay kutusu onay kutusu grubuna eklendiğinde, tüm onay kutularını yeniden etkinleştirmek için VBA kodunu yeniden çalıştırın. Onay kutusu grubundan onay kutusu silmek de kodu yeniden çalıştırmayı gerektirir.


İ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  |  Geliştirilmiş İşlevleri Çağır
Popüler Özellikler: Yinelenenleri Bul, Vurgula veya İşaretle   |  Boş Satırları Sil   |  Sütunları veya Hücreleri Verileri Kaybetmeden Birleştir   |   Formül Olmadan Yuvarla ...
Süper ARA: Çok Kriterli Düşeyara    Çoklu Değer Düşeyara  |   Ç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ı ve 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 (Auto Text)   |  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 filtrele...) ...
En İyi15 Araç Seti12 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ştir & Böl Aracı (Gelişmiş Satırları Birleştir, Hücreleri Böl, ...)   |   ... ve daha fazlası

Kutools for Excel ile Excel becerilerinizi geliştirin ve daha önce hiç olmadığı kadar verimli olun. Kutools for Excel, üretkenliğinizi artırmak ve zamanınızı kaydetmek için300'den fazla gelişmiş özellik sunar.  En çok ihtiyacınız olan özelliği almak için buraya tıklayın...


Office Tab, Office'e sekmeli arayüz getirir ve işinizi çok daha kolaylaştırır

  • Word, Excel, PowerPoint'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
  • Aynı pencerenin yeni sekmelerinde birden fazla belge açın ve oluşturun, yeni pencerelerde değil.
  • Verimliliğinizi %50 artırır ve her gün yüzlerce fare tıklamasını azaltır!