Excel Açılır Liste listelerinde birden fazla öğe seçme – tam kılavuz
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.

- Yinelenen öğelere izin verme
- Mevcut öğeleri kaldırma
- Özel bir ayırıcı belirleme
- Sınırlı aralık ayarlama
- Korumalı bir çalışma sayfasında yürütme
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
- Çoklu seçimi etkinleştirmek istediğiniz Açılır Liste’yi içeren çalışma sayfasını açın.
- Sayfa sekmesine sağ tıklayıp bağlam menüsünden “Kodu Görüntüle” seçeneğini seçin.

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

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:

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 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.
- Açılır Liste içeren ve birden fazla öğe seçmeniz gereken aralığı belirtin.
- Açılır liste hücresinde seçilen öğelerin sayısını ayırıcı olarak belirtin.
- Ayarları tamamlamak için “Tamam” düğmesine tıklayın.
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:

- 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:

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.

Ö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 = "; "
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")
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
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.
İlgili Makaleler
Excel açılır listesinde yazarken otomatik tamamlama
Büyük bir veri doğrulama açılır listeniz varsa, uygun değeri bulmak için ya listede aşağı kaydırmak ya da liste kutusuna tüm kelimeyi doğrudan yazmak zorunda kalırsınız. Eğer açılır listede ilk harfi yazdığınızda otomatik tamamlama özelliği olsaydı, her şey çok daha kolay olurdu! Bu öğretici, bu sorunu çözmek için etkili bir yöntemi sizinle paylaşıyor.
Excel'de başka bir çalışma kitabından açılır liste oluşturma
Bir çalışma kitabının sayfaları arasında veri doğrulama ile açılır liste oluşturmak oldukça kolaydır. Peki ya liste verileriniz, veri doğrulama için gerekli olanlar, başka bir çalışma kitabında yer alıyorsa? Bu öğreticide, Excel’de başka bir çalışma kitabından nasıl açılır liste oluşturabileceğinizi adım adım öğreneceksiniz.
Excel'de Aranabilir Bir Açılır Liste Oluşturma
Seçenek sayısı fazla olan bir açılır listede uygun değeri bulmak zor olabilir. Daha önce, açılır kutuya ilk harfi girerken otomatik tamamlama özelliğini tanıtmıştık. Otomatik tamamlamanın yanı sıra, açılır listeyi aranabilir hale getirerek doğru değeri çok daha hızlı bulabilirsiniz. Bu öğreticideki yöntemi deneyerek açılır listenizi aranabilir hale getirin!
Excel açılır liste kutusunda bir değer seçildiğinde diğer hücrelerin otomatik olarak doldurulması
Diyelim ki B8:B14 aralığındaki değerlere dayalı bir açılır liste oluşturmuşsunuz. Bu listeden bir değer seçtiğinizde, C8:C14 aralığındaki ilgili verilerin otomatik olarak belirli bir hücreye yerleştirilmesini istiyorsunuz. İşte bu öğreticideki yöntemler, tam da bu sorunu çözmek için size yardımcı olacak!
En İyi Ofis Verimlilik Araçları
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.
- 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
İçindekiler
- Çoklu seçimleri etkinleştirme
- VBA kodu kullanma
- Kutools for Excel'yi birkaç tıklamayla kullanma
- Diğer işlemler
- Yinelenen öğelere izin verme
- Mevcut öğeleri kaldırma
- Özel bir ayırıcı belirleme
- Sınırlı aralık ayarlama
- Korumalı bir çalışma sayfasında yürütme
- İlgili Makaleler
- En İyi Office Üretkenlik Araçları
- Yorumlar

