Excel açılır listesinde birden fazla öğe seçin - tam kılavuz
Excel açılır listeleri, veri tutarlılığı ve giriş kolaylığı sağlamak için harika bir araçtır. Ancak varsayılan olarak sizi yalnızca bir öğe seçmekle sınırlandırırlar. Peki ya aynı açılır listeden birden fazla öğe seçmeniz gerekiyorsa? Bu kapsamlı kılavuz, Excel açılır listelerinde birden fazla seçimi etkinleştirme, kopyaları yönetme, özel ayırıcılar ayarlama ve bu listelerin kapsamını tanımlama yöntemlerini araştıracaktır.
- Yinelenen öğelere izin verme
- Mevcut öğelerin kaldırılması
- Özel bir ayırıcı ayarlama
- Belirli bir aralığın ayarlanması
- Korumalı bir çalışma sayfasında yürütme
Açılır Listede Çoklu Seçimi Etkinleştirme
Bu bölümde Excel'deki açılır listede birden fazla seçimi etkinleştirmenize yardımcı olacak iki yöntem sunulmaktadır.
VBA Kodunu Kullanma
Açılır listede birden fazla seçime izin vermek için şunu kullanabilirsiniz: Uygulamalar için Visual Basic (VBA) Excel'de. Komut dosyası, bir açılır listenin davranışını, onu çoktan seçmeli bir liste haline getirecek şekilde değiştirebilir. Lütfen aşağıdaki işlemleri yapın.
1. Adım: Sayfa (Kod) düzenleyicisini 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 seçin Kodu Görüntüle bağlam menüsünden.
2. Adım: VBA kodunu kullanın
Şimdi aşağıdaki VBA kodunu kopyalayın ve açılış sayfası (Kod) penceresine yapıştırın.
VBA kodu: Excel açılır listesinde birden fazla seçimi 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 geri döndüğünüzde, açılır liste birden fazla seçeneği seçmenizi sağlayacaktır; aşağıdaki demoya bakın:
Yukarıdaki VBA kodu:
- Mevcut çalışma sayfasındaki hem mevcut hem de gelecekte oluşturulacak tüm veri doğrulama açılır listeleri için geçerlidir.
- Her açılır listede aynı öğeyi birden fazla seçmenizi engeller.
- Seçilen öğeler için ayırıcı olarak virgül kullanır. Diğer sınırlayıcıları kullanmak için lütfen ayırıcıyı değiştirmek için bu bölümü görüntüleyin.
Birkaç tıklamayla Kutools for Excel'i kullanma
VBA konusunda rahat değilseniz, daha kolay bir alternatif Kutools for Excel's Çoklu Seçim Açılır Liste özellik. Bu kullanıcı dostu araç, açılır listelerde birden fazla seçimin etkinleştirilmesini basitleştirerek, farklı ihtiyaçlarınızı karşılamak için ayırıcıyı özelleştirmenize ve kopyaları zahmetsizce yönetmenize olanak tanır.
Sonra Kutools for Excel'i yüklemeGidin Kutools sekmesini seçin Açılır liste > Çoklu Seçim Açılır Liste. Daha sonra aşağıdaki gibi yapılandırmanız gerekir.
- 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.
- Tıkla OK ayarları tamamlamak için.
Sonuç
Artık belirtilen aralıkta açılır listeye sahip bir hücreye tıkladığınızda, yanında bir liste kutusu görünecektir. Öğeleri açılır hücreye eklemek için yanındaki "+" düğmesini tıklamanız ve artık istemediğiniz öğeleri kaldırmak için "-" düğmesini tıklamanız yeterlidir. Aşağıdaki demoya bakın:
- kontrol Ayırıcı Ekledikten Sonra Metni Sar Seçilen öğeleri hücre içinde dikey olarak görüntülemek istiyorsanız bu seçeneği kullanın. Yatay listelemeyi tercih ediyorsanız bu seçeneği işaretlemeden bırakın.
- kontrol Aramayı etkinleştir Açılır listenize bir arama çubuğu eklemek istiyorsanız bu seçeneği kullanın.
- Bu özelliği uygulamak için lütfen Kutools for Excel'i indirip yükleyin İlk.
Çoklu seçim açılır listesi için daha fazla işlem
Bu bölüm, Veri Doğrulama açılır listesinde birden fazla seçimi etkinleştirirken gerekli olabilecek farklı senaryoları toplar.
Açılır listede yinelenen öğelere izin verilmesi
Açılır listede birden fazla seçime izin verildiğinde kopyalar sorun yaratabilir. Yukarıdaki VBA kodu, açılır listede yinelenen öğelere izin vermez. Yinelenen öğeleri saklamanız gerekiyorsa bu bölümdeki VBA kodunu deneyin.
VBA kodu: Veri doğrulama açılır listesinde kopyalara 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 listelerden birden fazla öğe seçebilirsiniz. Açılır liste hücresindeki bir öğeyi tekrarlamak için listeden o öğeyi seçmeye devam edin. Ekran görüntüsüne bakın:
Mevcut öğelerin açılır listeden kaldırılması
Açılır listeden birden fazla öğe seçtikten sonra bazen mevcut bir öğeyi açılır liste hücresinden kaldırmanız gerekebilir. Bu bölümde, bu görevi gerçekleştirmenize yardımcı olacak başka bir VBA kodu parçası sağlanmaktadır.
VBA kodu: Açılır liste hücresindeki mevcut öğeleri kaldırın
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, açılır listeden birden fazla öğe seçmenize ve önceden seçmiş olduğunuz herhangi bir öğeyi kolayca kaldırmanıza olanak tanır. Birden fazla öğe seçtikten sonra belirli bir öğeyi kaldırmak istiyorsanız onu listeden tekrar seçmeniz yeterlidir.
Özel bir ayırıcı ayarlama
Ayırıcı yukarıdaki VBA kodlarında virgül olarak ayarlanmıştır. Bu değişkeni, açılır liste seçimlerinde ayırıcı olarak kullanmak üzere tercih edilen herhangi bir karakterle değiştirebilirsiniz. İşte nasıl yapabileceğiniz:
Gördüğünüz gibi yukarıdaki VBA kodlarının tümü aşağıdaki satıra sahiptir:
delimiter = ", "
Virgülü istediğiniz gibi herhangi bir ayırıcıyla değiştirmeniz yeterlidir. Örneğin, öğeleri noktalı virgülle ayırmak istiyorsanız satırı şu şekilde değiştirin:
delimiter = "; "
delimiter = vbNewLine
Belirli bir aralığın ayarlanması
Yukarıdaki VBA kodları mevcut çalışma sayfasındaki tüm açılır listeler için geçerlidir. Eğer VBA kodlarının yalnızca belirli bir açılır liste aralığına uygulanmasını istiyorsanız yukarıdaki VBA kodundaki aralığı aşağıdaki gibi belirtebilirsiniz.
Gördüğünüz gibi yukarıdaki VBA kodlarının tümü aşağıdaki satıra sahiptir:
Set TargetRange = Me.UsedRange
Satırı şu şekilde değiştirmeniz yeterlidir:
Set TargetRange = Me.Range("C2:C10")
Korumalı bir çalışma sayfasında yürütme
Bir çalışma sayfasını şu parolayla koruduğunuzu düşünün: "123" ve açılır liste hücrelerini " olarak ayarlayınkilitsiz" korumayı etkinleştirmeden önce, böylece çoklu seçim işlevinin korumadan sonra da etkin kalmasını sağlar. Ancak yukarıda belirtilen VBA kodları bu durumda çalışamaz ve bu bölümde, çoklu seçim işlevini gerçekleştirmek için özel olarak tasarlanmış başka bir VBA komut dosyası açıklanmaktadır. korumalı bir çalışma sayfasında.
VBA kodu: Açılan listede kopyalar olmadan çoklu seçimi 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
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 birden fazla seçimi etkinleştirerek çalışma sayfalarınızın işlevselliğini ve esnekliğini büyük ölçüde artırabilirsiniz. İster VBA kodlama konusunda rahat olun, ister Kutools gibi daha basit bir çözümü tercih edin, artık standart açılır listelerinizi dinamik, çoklu seçimli araçlara dönüştürme olanağına sahipsiniz. Bu becerilerle artık daha dinamik ve kullanıcı dostu Excel belgeleri oluşturabilecek donanıma sahipsiniz. Excel'in yeteneklerini daha derinlemesine incelemek isteyenler için web sitemizde çok sayıda eğitim bulunmaktadır. Daha fazla Excel ipucunu ve püf noktasını burada keşfedin.
İlgili Makaleler
Excel açılır listesine yazarken otomatik tamamlama
Büyük değerlere sahip bir veri doğrulama açılır listeniz varsa, yalnızca uygun olanı bulmak için listede aşağı kaydırmanız veya tüm kelimeyi doğrudan liste kutusuna yazmanız gerekir. Açılır listedeki ilk harfi yazarken otomatik tamamlamaya izin verme yöntemi varsa, her şey daha kolay hale gelecektir. Bu eğitim, sorunu çözme yöntemini sağlar.
Excel'de başka bir çalışma kitabından açılır liste oluşturun
Bir çalışma kitabındaki çalışma sayfaları arasında bir veri doğrulama açılır listesi oluşturmak oldukça kolaydır. Ancak, veri doğrulama için ihtiyacınız olan liste verileri başka bir çalışma kitabında bulunuyorsa, ne yapardınız? Bu öğreticide, Excel'deki başka bir çalışma kitabından açılır listenin nasıl oluşturulacağını ayrıntılı olarak öğreneceksiniz.
Excel'de aranabilir bir açılır liste oluşturun
Çok sayıda değeri olan bir açılır liste için, uygun olanı bulmak kolay bir iş değildir. Daha önce, açılır kutuya ilk harfi girerken otomatik tamamlama açılır listesi için bir yöntem getirmiştik. Otomatik tamamlama işlevinin yanı sıra, açılır listede uygun değerleri bulmada çalışma verimliliğini artırmak için açılır listeyi aranabilir hale de getirebilirsiniz. Açılır listeyi aranabilir hale getirmek için bu eğitimdeki yöntemi deneyin.
Excel açılır listesindeki değerleri seçerken diğer hücreleri otomatik olarak doldurun
B8: B14 hücre aralığındaki değerlere dayalı bir açılır liste oluşturduğunuzu varsayalım. Açılır listeden herhangi bir değeri seçtiğinizde, C8: C14 hücre aralığındaki karşılık gelen değerlerin seçili bir hücrede otomatik olarak doldurulmasını istersiniz. Sorunu çözmek için, bu eğitimdeki yöntemler size bir iyilik yapacaktır.
En İyi Ofis Üretkenlik Araçları
Kutools for Excel ile Excel Becerilerinizi Güçlendirin ve Daha Önce Hiç Olmadığı Gibi Verimliliği Deneyimleyin. Kutools for Excel, Üretkenliği Artırmak ve Zamandan Tasarruf Etmek için 300'den Fazla Gelişmiş Özellik Sunar. En Çok İhtiyacınız Olan Özelliği Almak İçin Buraya Tıklayın...
Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir
- Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
- Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
- Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!
İçindekiler
- Çoklu seçimi etkinleştirme
- VBA kodunu kullanma
- Birkaç tıklamayla Kutools for Excel'i kullanma
- Daha fazla işlem
- Yinelenen öğelere izin verme
- Mevcut öğelerin kaldırılması
- Özel bir ayırıcı ayarlama
- Belirli bir aralığın ayarlanması
- Korumalı bir çalışma sayfasında yürütme
- İlgili Makaleler
- En İyi Ofis Üretkenliği Araçları
- Yorumlar