Excel açılır listesinde birden fazla öğe seçme – tam kılavuz
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.
- Yinelenen öğelere izin verme
- Mevcut öğeleri kaldırma
- Özel ayırıcı ayarlama
- Belirtilen aralığı ayarlama
- Korumalı çalışma sayfasında yürütme
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
- Çoklu seçimi etkinleştirmek istediğiniz açılır listeyi içeren çalışma sayfasını açın.
- Sayfa sekmesine sağ tıklayın ve 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 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
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:
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'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.
- Birden fazla öğe seçmeniz gereken açılır listeyi içeren aralığı belirtin.
- Açılır liste hücresinde seçilen öğeler için ayırıcıyı belirtin.
- 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:
- 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çı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.
Ö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 = "; "
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")
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
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.
İlgili Makaleler
Excel açılır listesinde yazarken otomatik tamamlama
Eğer değerleri çok olan bir veri doğrulama açılır listeniz varsa, uygun olanı bulmak için listede aşağı kaydırmanız veya doğrudan liste kutusuna tüm kelimeyi yazmanız gerekir. Eğer açılır listede ilk harfi yazdığınızda otomatik tamamlama yapılmasına izin veren bir yöntem olsaydı, her şey daha kolay olurdu. Bu öğretici, sorunu çözmek için yöntemi sunar.
Excel'de başka bir çalışma kitabından açılır liste oluşturma
Bir çalışma kitabındaki çalışma sayfaları arasında veri doğrulama açılır listesi oluşturmak oldukça kolaydır. Ancak veri doğrulama için ihtiyaç duyduğunuz liste verileri başka bir çalışma kitabında yer alıyorsa ne yaparsınız? Bu eğitimde, Excel'de başka bir çalışma kitabından açılır liste oluşturmayı ayrıntılı olarak öğreneceksiniz.
Excel'de aranabilir bir açılır liste oluşturma
Değerleri çok olan bir açılır liste için, uygun birini bulmak kolay bir iş değildir. Daha önce, açılır kutuya ilk harfi girdiğinizde açılır listeyi otomatik tamamlama yöntemini tanıtmıştık. Otomatik tamamlama işlevinin yanı sıra, açılır listeyi aranabilir hale getirerek listedeki uygun değerleri bulma verimliliğini artırabilirsiniz. Açılır listeyi aranabilir hale getirmek için bu öğreticideki yöntemi deneyin.
Excel açılır liste değerlerini seçerken diğer hücreleri otomatik doldurma
Diyelim ki B8:B14 hücre aralığındaki değerlere dayalı bir açılır liste oluşturdunuz. Açılır listeden herhangi bir değer seçtiğinizde, C8:C14 hücre aralığındaki karşılık gelen değerlerin seçili bir hücreye otomatik olarak doldurulmasını istiyorsunuz. Sorunu çözmek için bu öğreticideki yöntemler size yardımcı olacaktır.
En İyi Ofis Verimlilik Araçları
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!
İçindekiler
- Çoklu seçimleri etkinleştirme
- VBA kodu kullanma
- Kutools for Excel'i birkaç tıklamayla kullanma
- Daha fazla işlem
- Yinelenen öğelere izin verme
- Mevcut öğeleri kaldırma
- Özel ayırıcı ayarlama
- Belirtilen aralığı ayarlama
- Korumalı çalışma sayfasında yürütme
- İlgili Makaleler
- En İyi Ofis Üretkenlik Araçları
- Yorumlar