Skip to main content

Excel açılır listesinde birden fazla öğe seçme – tam kılavuz

Author: Siluvia Last Modified: 2025-06-10

Excel açılır listeleri, veri tutarlılığını sağlamak ve giriş kolaylığı açısından harika bir araçtır. Ancak varsayılan olarak, yalnızca bir öğe seçmenize izin verir. Peki ya aynı açılır listeden birden fazla öğe seçmeniz gerekiyorsa? Bu kapsamlı kılavuz, Excel açılır listelerinde çoklu seçimleri etkinleştirme, yinelenenleri yönetme, özel ayırıcılar ayarlama ve bu listelerin kapsamını tanımlama yöntemlerini ele alacaktır.

A screenshot of the animated demo showing multiple selections in an Excel drop-down list.

İpucu: Aşağıdaki yöntemleri uygulamadan önce, çalışma sayfalarınızda önceden açılır listeler oluşturduğunuzdan emin olun. Veri doğrulama açılır listeleri oluşturmayı öğrenmek istiyorsanız, şu makaledeki talimatları izleyin: Excel'de veri doğrulama açılır listeleri nasıl oluşturulur.

Açılır Liste İçinde Çoklu Seçimleri Etkinleştirme

Bu bölüm, Excel'deki açılır listede çoklu seçimleri etkinleştirmenize yardımcı olmak için iki yöntem sunar.

VBA Kodu Kullanma

Bir açılır listede çoklu seçimlere izin vermek için Excel'de "Visual Basic for Applications" (VBA) kullanabilirsiniz. Betik, bir açılır listenin davranışını değiştirerek onu çoklu seçim listesi haline getirebilir. Lütfen aşağıdaki adımları takip edin.

Adım 1: Sayfa (Kod) düzenleyiciyi açın
  1. Çoklu seçimi etkinleştirmek istediğiniz açılır listeyi içeren çalışma sayfasını açın.
  2. Sayfa sekmesine sağ tıklayın ve bağlam menüsünden "Kodu Görüntüle" seçeneğini seçin.
    A screenshot of the View Code option in the context menu of a sheet tab in Excel
Adım 2: VBA kodunu kullanın

Şimdi aşağıdaki VBA kodunu kopyalayın ve açılan sayfa (Kod) penceresine yapıştırın.

VBA kodu: Excel açılır listesinde çoklu seçimleri etkinleştirin.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub

A screenshot of the VBA code pasted into the Excel VBA editor

Sonuç

Çalışma sayfasına döndüğünüzde, açılır liste size birden fazla seçenek seçme imkanı tanıyacak, aşağıdaki demoyu inceleyin:

A screenshot of the animated demo showing multiple selections in an Excel drop-down list

Notlar:
Yukarıdaki VBA kodu:
  • Geçerli çalışma sayfasındaki tüm veri doğrulama açılır listelerine hem mevcut olanlara hem de gelecekte oluşturulacak olanlara uygulanır.
  • Her bir açılır listede aynı öğeyi birden fazla kez seçmenizi engeller.
  • Seçilen öğeler için virgülü ayırıcı olarak kullanır. Diğer ayırıcılar kullanmak için lütfen ayırıcıyı değiştirmek üzere bu bölümü inceleyin.

Kutools for Excel'i birkaç tıklamayla kullanma

Eğer VBA ile rahat hissetmiyorsanız, daha kolay bir alternatif olan "Kutools for Excel"in "Çoklu Seçimli Açılır Liste" özelliğidir. Bu kullanıcı dostu araç, açılır listelerde çoklu seçimleri etkinleştirmeyi basitleştirir, ayırıcıyı özelleştirmenize ve yinelenenleri kolayca yönetmenize olanak tanır, böylece farklı ihtiyaçlarınızı karşılar.

Kutools for Excel, karmaşık görevleri basitleştirmek için 300'den fazla gelişmiş özellik sunar ve yaratıcılığı ve verimliliği artırır. Yapay zeka yetenekleriyle entegre olarak, Kutools görevleri hassas bir şekilde otomatikleştirir ve veri yönetimi işlerini kolaylaştırır. Kutools for Excel hakkında detaylı bilgi...  Ücretsiz deneme...

Kutools for Excel'i yükledikten sonra, "Kutools" sekmesine gidin, "Açılır Liste" > "Çoklu Seçimli Açılır Liste" seçeneğini seçin. Ardından aşağıdaki gibi yapılandırmalısınız.

  1. Birden fazla öğe seçmeniz gereken açılır listeyi içeren aralığı belirtin.
  2. Açılır liste hücresinde seçilen öğeler için ayırıcıyı belirtin.
  3. Ayarları tamamlamak için "Tamam" düğmesine tıklayın.
Sonuç

Şimdi, belirtilen aralıktaki bir açılır liste içeren hücreye tıkladığınızda, yanına bir liste kutusu açılacaktır. Yalnızca öğelerin yanındaki "+" düğmesine tıklayarak bunları açılır hücreye ekleyebilir ve "-" düğmesine tıklayarak artık istemediğiniz öğeleri kaldırabilirsiniz. Aşağıdaki demoyu inceleyin:

A screenshot showing a demo of managing multiple selections in an Excel drop-down list using Kutools

Notlar:
  • Seçilen öğeleri hücre içinde dikey olarak görüntülemek istiyorsanız "Ayırıcı Ekleme Sonrası Metni Kaydır" seçeneğini işaretleyin. Yatay bir liste tercih ediyorsanız bu seçeneği işaretlemeyin.
  • Açılır listenize bir arama çubuğu eklemek istiyorsanız "Arama işlevini etkinleştir" seçeneğini işaretleyin.
  • Bu özelliği uygulamak için lütfen önce Kutools for Excel'i indirip yükleyin.

Çoklu seçimli açılır liste için daha fazla işlem

Bu bölüm, Veri Doğrulama açılır listesinde çoklu seçimleri etkinleştirirken gerekli olabilecek farklı senaryoları toplar.


Açılır listede yinelenen öğelere izin verme

Çoklu seçimlere izin verildiğinde yinelenenler bir sorun teşkil edebilir. Yukarıdaki VBA kodu, açılır listede yinelenen öğelere izin vermez. Eğer yinelenen öğeleri tutmanız gerekiyorsa, bu bölümdeki VBA kodunu deneyin.

VBA kodu: Veri doğrulama açılır listesinde yinelenenlere izin verme

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range

    Set TargetRange = Me.UsedRange ' Users can change target range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then Exit Sub
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        Target.Value = xValue1 & delimiter & xValue2
    End If

    Application.EnableEvents = True
    On Error GoTo 0
End Sub
Sonuç

Artık geçerli çalışma sayfasındaki açılır listelerden birden fazla öğe seçebilirsiniz. Bir açılır liste hücresinde bir öğeyi tekrarlamak için, o öğeyi listeden tekrar seçmeye devam edin. Ekran görüntüsüne bakın:

A screenshot of the animated demo showing duplicate selections in an Excel drop-down list


Açılır listeden mevcut öğeleri kaldırma

Bir açılır listeden birden fazla öğe seçtikten sonra, bazen açılır liste hücresinden mevcut bir öğeyi kaldırmak isteyebilirsiniz. Bu bölüm, bu görevi gerçekleştirmenize yardımcı olacak başka bir VBA kodu sunar.

VBA kodu: Açılır liste hücresinden mevcut öğeleri kaldırma

Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRngDV As Range
    Dim TargetRange As Range
    Dim oldValue As String
    Dim newValue As String
    Dim delimiter As String
    Dim allValues As Variant
    Dim valueExists As Boolean
    Dim i As Long
    Dim cleanedValue As String

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Set your desired delimiter here

    If Target.CountLarge > 1 Then Exit Sub

    ' Check if the change is within the specific range
    If Intersect(Target, TargetRange) Is Nothing Then Exit Sub

    On Error Resume Next
    Set xRngDV = Target.SpecialCells(xlCellTypeAllValidation)
    If xRngDV Is Nothing Or Target.Value = "" Then
        ' Skip if there's no data validation or if the cell is cleared
        Application.EnableEvents = True
        Exit Sub
    End If
    On Error GoTo 0

    If Not Intersect(Target, xRngDV) Is Nothing Then
        Application.EnableEvents = False
        newValue = Target.Value
        Application.Undo
        oldValue = Target.Value
        Target.Value = newValue

        ' Split the old value by delimiter and check if new value already exists
        allValues = Split(oldValue, delimiter)
        valueExists = False
        For i = LBound(allValues) To UBound(allValues)
            If Trim(allValues(i)) = newValue Then
                valueExists = True
                Exit For
            End If
        Next i

        ' Add or remove value based on its existence
        If valueExists Then
            ' Remove the value
            cleanedValue = ""
            For i = LBound(allValues) To UBound(allValues)
                If Trim(allValues(i)) <> newValue Then
                    If cleanedValue <> "" Then cleanedValue = cleanedValue & delimiter
                    cleanedValue = cleanedValue & Trim(allValues(i))
                End If
            Next i
            Target.Value = cleanedValue
        Else
            ' Add the value
            If oldValue <> "" Then
                Target.Value = oldValue & delimiter & newValue
            Else
                Target.Value = newValue
            End If
        End If

        Application.EnableEvents = True
    End If
End Sub
Sonuç

Bu VBA kodu, bir açılır listeden birden fazla öğe seçmenize ve zaten seçtiğiniz herhangi bir öğeyi kolayca kaldırmaya olanak tanır. Birden fazla öğe seçtikten sonra, belirli birini kaldırmak istiyorsanız, sadece onu listeden tekrar seçin.

A screenshot of the animated demo showing how to remove existing items from a drop-down list in Excel


Özel ayırıcı ayarlama

Yukarıdaki VBA kodlarında ayırıcı virgül olarak ayarlanmıştır. Bu değişkeni, açılır liste seçimleri için ayırıcı olarak kullanmak istediğiniz herhangi bir karaktere değiştirebilirsiniz. İşte nasıl yapacağınız:

Gördüğünüz gibi yukarıdaki VBA kodlarının hepsinde şu satır bulunmaktadır:

delimiter = ", "

Sadece virgülü ihtiyacınıza göre herhangi bir ayırıcıya değiştirin. Örneğin, öğeleri noktalı virgülle ayırmak istiyorsanız, satırı şu şekilde değiştirin:

delimiter = "; "
Not: Bu VBA kodlarında ayırıcıyı yeni satır karakterine değiştirmek için bu satırı şu şekilde değiştirin:
delimiter = vbNewLine

Belirtilen aralığı ayarlama

Yukarıdaki VBA kodları, geçerli çalışma sayfasındaki tüm açılır listelerine uygulanır. Eğer VBA kodlarının yalnızca belirli bir aralıktaki açılır listelerine uygulanmasını istiyorsanız, yukarıdaki VBA kodunda aralığı aşağıdaki gibi belirtebilirsiniz.

Gördüğünüz gibi yukarıdaki VBA kodlarının hepsinde şu satır bulunmaktadır:

Set TargetRange = Me.UsedRange

Sadece satırı şu şekilde değiştirin:

Set TargetRange = Me.Range("C2:C10")
Not: Burada C2:C10, çoklu seçim olarak ayarlamak istediğiniz açılır listeyi içeren aralıktır.

Korumalı çalışma sayfasında yürütme

Diyelim ki bir çalışma sayfasını "123" şifresiyle korudunuz ve korumayı etkinleştirmeden önce açılır liste hücrelerini "Kilitli Değil" olarak ayarladınız, böylece koruma sonrası çoklu seçim işlevinin aktif kalmasını sağladınız. Ancak yukarıda bahsedilen VBA kodları bu durumda çalışamaz ve bu bölüm, korumalı bir çalışma sayfasında özellikle çoklu seçim işlevselliğini ele almak için tasarlanmış başka bir VBA betiği açıklar.

VBA kodu: Yinelenenler olmadan açılır listede çoklu seçimi etkinleştirme


Private Sub Worksheet_Change(ByVal Target As Range)
    'Updated by Extendoffice 20240118
    Dim xRng As Range
    Dim xValue1 As String
    Dim xValue2 As String
    Dim delimiter As String
    Dim TargetRange As Range
    Dim isProtected As Boolean
    Dim pswd As Variant

    Set TargetRange = Me.UsedRange ' Set your specific range here
    delimiter = ", " ' Users can change the delimiter here

    If Target.Count > 1 Or Intersect(Target, TargetRange) Is Nothing Then Exit Sub
    
    ' Check if sheet is protected
    isProtected = Me.ProtectContents
    If isProtected Then
        ' If protected, temporarily unprotect. Adjust or remove the password as needed.
        pswd = "yourPassword" ' Change or remove this as needed
        Me.Unprotect Password:=pswd
    End If

    On Error Resume Next
    Set xRng = TargetRange.SpecialCells(xlCellTypeAllValidation)
    If xRng Is Nothing Then
        If isProtected Then Me.Protect Password:=pswd
        Exit Sub
    End If
    Application.EnableEvents = False

    xValue2 = Target.Value
    Application.Undo
    xValue1 = Target.Value
    Target.Value = xValue2
    If xValue1 <> "" And xValue2 <> "" Then
        If Not (xValue1 = xValue2 Or _
                InStr(1, xValue1, delimiter & xValue2) > 0 Or _
                InStr(1, xValue1, xValue2 & delimiter) > 0) Then
            Target.Value = xValue1 & delimiter & xValue2
        Else
            Target.Value = xValue1
        End If
    End If

    Application.EnableEvents = True
    On Error GoTo 0

    ' Re-protect the sheet if it was protected
    If isProtected Then
        Me.Protect Password:=pswd
    End If
End Sub
Not: Kodda, pswd = "yourPassword" satırındaki “yourPassword” ifadesini çalışma sayfasını korumak için kullandığınız gerçek şifreyle değiştirdiğinizden emin olun. Örneğin, şifreniz "abc123" ise, satır şu şekilde olmalıdır: pswd = "abc123".

Excel açılır listelerinde çoklu seçimleri etkinleştirerek, çalışma sayfalarınızın işlevselliğini ve esnekliğini büyük ölçüde artırabilirsiniz. VBA kodlamaya hakim olup olmadığınız veya Kutools gibi daha basit bir çözüm tercih edip etmediğiniz fark etmeksizin, artık standart açılır listelerinizi dinamik, çoklu seçim araçlarına dönüştürme yeteneğine sahipsiniz. Bu becerilerle, artık daha dinamik ve kullanıcı dostu Excel belgeleri oluşturmaya hazırsınız. Excel'in yeteneklerine daha derinlemesine girmek isteyenler için web sitemizde bol miktarda eğitim bulunmaktadır. Daha fazla Excel ipucu ve hilesi burada keşfedin.

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!