KutoolsforOffice — Tek çözüm, beş güçlü araç.Daha az çabayla daha fazlasını başarmak.

Excel Açılır Liste listelerinde birden fazla öğe seçme – tam kılavuz

YazarSiluvia Değiştirme Tarihi

Excel Açılır Liste, veri tutarlılığını korumak ve veri girişini kolaylaştırmak için harika bir özelliktir. Ancak varsayılan olarak yalnızca tek bir öğe seçmenize izin verir. Peki ya aynı açılır listeden birden fazla öğe seçmeniz gerekiyorsa? Bu kapsamlı kılavuzda, Excel’de açılır listelerde çoklu seçimi nasıl etkinleştireceğinizi, yinelenen değerleri nasıl yöneteceğinizi, özel ayırıcılar nasıl tanımlayacağınızı ve bu listelerin kapsamını nasıl belirleyeceğinizi adım adım inceleyeceğiz.

Excel açılır liste içinde çoklu seçimleri gösteren animasyonlu demoya ait bir ekran görüntüsü.

İpucu: Aşağıdaki yöntemleri uygulamadan önce, çalışma sayfalarınızda önceden Açılır Liste oluşturduğunuzdan emin olun. Veri doğrulama Açılır Liste listelerini nasıl oluşturacağınızı öğrenmek istiyorsanız, bu makaledeki talimatları izleyin:Excel’de veri doğrulama Açılır Liste listesi oluşturma.

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

Bu bölüm, Excel’de açılır liste kutularında çoklu seçim özelliğini etkinleştirmeniz için iki yöntem sunar.

VBA Kodu Kullanarak

Excel’de bir açılır liste içinde çoklu seçim yapmaya izin vermek için “Visual Basic for Applications” (VBA) kullanabilirsiniz. Bu betik, açılır listenin davranışını değiştirerek onu çoktan seçmeli hale getirir. Lütfen aşağıdaki adımları uygulayın.

Adım 1: Sayfa (Kod) düzenleyicisini açın
  1. Çoklu seçimi etkinleştirmek istediğiniz Açılır Liste’yi içeren çalışma sayfasını açın.
  2. Sayfa sekmesine sağ tıklayıp bağlam menüsünden “Kodu Görüntüle” seçeneğini seçin.
    Excel'de bir sayfa sekmesinin içerik menüsünde Kodu Görüntüle seçeneğinin ekran görüntüsü
Adım 2: VBA kodunu kullanın

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

VBA kodu: Excel açılır liste kutularında çoklu seçim özelliğini 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

Excel VBA düzenleyicisine yapıştırılan VBA kodunun ekran görüntüsü

Sonuç

Çalışma sayfasına döndüğünüzde, Açılır Liste birden fazla seçeneği seçmenizi sağlayacaktır; aşağıdaki tanıtımı inceleyin:

Excel açılır liste içinde çoklu seçimleri gösteren animasyonlu demoya ait bir ekran görüntüsü

Notlar:
Yukarıdaki VBA kodu:
  • Geçerli çalışma sayfasındaki mevcut ve ileride oluşturulacak tüm veri doğrulama açılır listelerine uygulanır.
  • Her açılır liste, aynı öğeyi birden fazla kez seçmenizi engeller.
  • Seçilen Öğelerin Sayısı için ayırıcı olarak virgül kullanılır. Başka bir ayırıcı tercih ediyorsanız, lütfen ayırıcıyı değiştirmek için bu bölümü inceleyin.

Kutools for Excel'yi birkaç tıklamayla kullanma

VBA ile pek rahat hissetmiyorsanız, çok daha kolay bir alternatif olarak “Kutools for Excel” programının “Çoklu Seçenekli Açılır Liste Oluştur” özelliğini kullanabilirsiniz. Bu kullanıcı dostu araç, açılır listelerde çoklu seçim yapmayı son derece basitleştirir; ayırıcıyı ihtiyaçlarınıza göre özelleştirmenize ve yinelenenleri zahmetsizce yönetmenize olanak tanır.

Kutools for Excel300’den fazla gelişmiş özelliğiyle karmaşık görevleri kolaylaştırır ve yaratıcılığı ile verimliliği artırır.Yapay zeka yetenekleriyle entegre, Kutools görevleri hassasiyetle otomatikleştirerek veri yönetimini zahmetsiz hale getirir.Kutools for Excel hakkında detaylı bilgi…         Ücretsiz deneme…

Kutools for Excel yüklendikten sonra, "Kutools" sekmesine gidin ve "Açılır Liste" > "Çoklu Seçenekli Açılır Liste Oluştur" seçeneğini belirleyin. Ardından aşağıdaki gibi yapılandırmanız gerekir.

  1. Açılır Liste içeren ve birden fazla öğe seçmeniz gereken aralığı belirtin.
  2. Açılır liste hücresinde seçilen öğelerin sayısını ayırıcı olarak belirtin.
  3. Ayarları tamamlamak için “Tamam” düğmesine tıklayın.
    Kutools Çoklu Seçimli Açılır Liste yapılandırma ekranının, aralık ve ayırıcı seçeneklerini gösteren ekran görüntüsü
Sonuç

Artık, Sınırlı Aralık içinde Açılır Liste içeren bir hücreye tıkladığınızda, hemen yanında bir liste kutusu belirecek. Öğeleri açılır listeye eklemek için ilgili öğenin yanındaki “+” düğmesine, artık listede olmasını istemediğiniz öğeleri kaldırmak içinse “–” düğmesine tıklamanız yeterli. Aşağıdaki tanıtımı inceleyin:

Kutools kullanarak Excel açılır listesinde çoklu seçimleri yönetme demosunu gösteren bir ekran görüntüsü

Notlar:
  • Hücre içinde "Seçilen Öğelerin Sayısı"nı dikey olarak görüntülemek istiyorsanız, “Satır sonuna ayırıcı ekle” seçeneğini işaretleyin. Yatay 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 kullanmak için lütfen önce Kutools for Excel’i indirip yükleyin.

Çoklu seçimli Açılır Liste listeleri için daha fazla işlem

Bu bölüm, Veri Doğrulama açılır liste kutularında çoklu seçimleri etkinleştirirken karşılaşılabilecek çeşitli senaryoları bir araya getirir.


Açılır Liste listelerinde yinelenen öğelere izin verme

Çoklu seçimlere izin verildiğinde yinelenen öğeler sorun yaratabilir. Yukarıdaki VBA kodu, açılır liste içindeki yinelenen öğelere izin vermez. Ancak yinelenen öğeleri korumanız gerekiyorsa, bu bölümdeki VBA kodunu deneyin.

VBA kodu: Veri doğrulama Açılır Liste listelerinde yinelenenlere izin ver

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 Liste’den birden fazla öğe seçebilirsiniz. Bir Açılır Liste hücresinde bir öğeyi tekrar eklemek için, listeden ilgili öğeyi yeniden seçmeye devam edin. Ekran görüntüsüne göz atın:

Excel açılır liste içinde yinelenen seçimleri gösteren animasyonlu demoya ait bir ekran görüntüsü


Açılır Liste hücresinden mevcut herhangi bir öğeyi kaldırma

Bir Açılır Liste’den birden fazla öğe seçtikten sonra, bazen bu listeden mevcut bir öğeyi kaldırmak isteyebilirsiniz. Bu bölüm, söz konusu işlemi gerçekleştirmenize yardımcı olmak üzere ek bir VBA kodu sunar.

VBA kodu: Açılır Liste hücresinden mevcut herhangi bir öğeyi 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 Liste’den birden fazla öğe seçmenizi ve önceden seçtiğiniz herhangi bir öğeyi kolayca kaldırmayı sağlar. Birden fazla öğe seçtikten sonra listeden belirli birini kaldırmak isterseniz, ilgili öğeyi tekrar seçmeniz yeterlidir.

Excel'de açılır listeden mevcut öğeleri kaldırma işlemini gösteren animasyonlu demoya ait bir ekran görüntüsü


Özel bir ayırıcı belirleme

Yukarıdaki VBA kodlarında ayırıcı olarak virgül kullanılmıştır. Bu değişkeni, Açılır Liste seçimlerinizde ayırıcı olarak istediğiniz herhangi bir karakterle değiştirebilirsiniz. İşte bunu nasıl yapacağınız:

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

delimiter = ", "

Yalnızca virgülü ihtiyacınıza göre istediğiniz ayırıcıyla değiştirmeniz yeterlidir. Örneğin, öğeleri noktalı virgülle ayırmak istiyorsanız satırı şu şekilde güncelleyin:

delimiter = "; "
Not: Bu VBA kodlarında ayırıcıyı yeni satır karakterine dönüştürmek için bu satırı şuna değiştirin:
delimiter = vbNewLine

Sınırlı aralık Belirleme

Yukarıdaki VBA kodları, Geçerli Çalışma Sayfası’ndaki tüm Açılır Liste alanlarına uygulanır. Eğer bu VBA kodlarının yalnızca belirli bir Açılır Liste aralığına uygulanmasını istiyorsanız, yukarıdaki koda aşağıdaki gibi ilgili aralığı ekleyebilirsiniz.

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

Set TargetRange = Me.UsedRange

Sadece satırı şuna değiştirin:

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

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

Diyelim ki çalışma sayfasını "123" parolasıyla korudunuz ve korumayı etkinleştirmeden önce Açılır Liste içeren hücreleri "Kilitli Değil" olarak işaretlediniz; böylece çoklu seçim özelliğinin sayfa korunduktan sonra da çalışmaya devam etmesini sağladınız. Ancak yukarıda belirtilen VBA kodları bu senaryoda işe yaramaz. Bu bölüm, korumalı bir çalışma sayfasında çoklu seçim işlevselliğini yönetmek üzere özel olarak geliştirilmiş başka bir VBA betiğini açıklar.

VBA kodu: Yinelenen olmadan Açılır Liste içinde çoklu seçimleri etkinleştir


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, çalışma sayfasını korumak için kullandığınız gerçek parola ile "yourPassword" ifadesini değiştirdiğinizden emin olun. Örneğin, parolanız "abc123" ise, satır şöyle olmalıdır: pswd = "abc123".

Excel’deki açılır liste kutularında ç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 ile rahatça kod yazabiliyor olabilir ya da Kutools gibi daha basit bir çözümü tercih ediyor olabilirsiniz; artık standart açılır listelerinizi dinamik, çoktan seçmeli araçlara dönüştürme yeteneğine sahipsiniz. Bu becerilerle, daha akıllıca ve kullanıcı dostu Excel belgeleri oluşturmaya hazırsınız! Excel’in potansiyelini daha derinlemesine keşfetmek isteyenler için web sitemizde bol miktarda öğretici içerik sizi bekliyor.Excel ile ilgili daha fazla ipucu ve püf noktası keşfedin.

En İyi Ofis Verimlilik Araçları

🤖KUTOOLS AI Yardımcısı: Şunu temel alarak Veri Analizi'yi dönüştürün:Akıllı Yürütme   |  Kod Oluştur|  özel formüller Oluştur  |  Verileri Analiz Et ve Grafikler Oluştur|  Geliştirilmiş İşlevler Çağır…
Popüler Özellikler:Bul, Vurgula veya Yinelenenleri İşaretle   |  Boş Satırları Sil   |  Verileri Kaybetmeden Sütunları Birleştir veya Hücreleri   |   Formül kullanmadan yuvarlama…
Süper ARA:Çoklu Kriterli Düşey Arama (VLookup)  |  Çoklu Değerli Düşey Arama (VLookup)  |   Birden Fazla Sayfada Düşey Arama (VLookup)   |   Bulanık Eşleme…
Gelişmiş Açılır Liste:Açılır Liste Hızlıca 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 Aç/Kapat|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ı ve Sayfa Yöneticisi   |  Kaynaklar(Otomatik Metin)|  Tarih Seçici   |  Çalışma Sayfalarını Birleştir  |  Şifrele/Hücreleri Şifre Çöz   | Listeye Göre E-posta Gönder   |  Süper Filtre   |   Özel Filtre(Kalın Yazılı Hücreleri Filtrele/eğik/üstü çizili…) …
En İyi 15 Araç Setleri:12 MetinAraçları(Metin Ekle,Belirli Karakterleri Sil, …)|   50+GrafikTürleri(Gantt Grafiği, …)|   40+ Pratik Formüller(Doğum tarihine dayanarak yaş hesapla, …)|   19 EklemeAraçları(QR Kodu Ekle,Yoldan Resim Ekle, …)|   12 DönüştürmeAraçları(Kelimeye Dönüştür,Döviz Kuru Dönüşümü, …)|   7 Birleştir ve AyırAraçları(Gelişmiş Satırları Birleştir,Hücreleri Böl, …)|… ve daha fazlası
Kutools’u tercih ettiğiniz dilde kullanın – İngilizce, İspanyolca, Almanca, Fransızca, Çince ve 40+ başka dil desteği sunar!

Excel becerilerinizi Kutools for Excel ile güçlendirin ve verimlilikte hiç yaşanmamış bir deneyim yaşayın.Kutools for Excel, verimliliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…


Office Tab Office'a Sekmeli Arayüz Getirir ve İşlerinizi Çok Daha Kolay Hale Getirir

  • Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirir.
  • Birden fazla belgeyi yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açın ve oluşturun.
  • Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!

Tüm Kutools eklentileri — tek bir kurulum dosyasında!

Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint için eklentileri tek bir çözümde bir araya getirir; ayrıca Office Tab Pro’yu da içerir ve Office uygulamalarında çalışan ekipler için idealdir.

ExcelWordOutlookTabsPowerPoint
  • Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
  • Tek kurulum, tek lisans— dakikalar içinde kurulum (MSI uyumlu)
  • Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
  • 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
  • En iyi değer— tek tek eklenti satın alımına göre tasarruf