UserForm içindeki ComboBox ile RowSource kaynağındaki boş hücreler

Katılım
16 Ekim 2009
Mesajlar
58
Excel Vers. ve Dili
2007 Türkçe
Merhaba;

Konunun başlığından da anlaşıldığı üzere, bir UserForm'da bulunan ComboBox'lara RowSource ile belirli bir alan gösteriliyor. Ancak arada boşluklar olduğu için ComboBox'da da görülüyor bu boşluklar. İstediğim bu boşlukların görünmemesi için gerekli kod ve/veya uygulama. Yardımlarınız için şimdiden teşekkür ederim. Örnek dosya EK'tedir.
 

Ekli dosyalar

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
merhaba

Rowsource kısmını silin

Aşağıdakii kodları userform'un kod kısmına yapıştırın
Kod:
Private Sub UserForm_Initialize()
son = Sheets("Veri").Cells(60000, 1).End(xlUp).Row
For x = 1 To son
    If Sheets("Veri").Cells(x, 1) <> "" Then ComboBox1.AddItem Sheets("Veri").Cells(x, 1)
    Next x
End Sub
 
Katılım
16 Ekim 2009
Mesajlar
58
Excel Vers. ve Dili
2007 Türkçe
Çok teşekkür ederim. Ancak tam olarak olmamış, birden fazla ComboBox var ve her birinin veri kaynağı farklı. Yardımcı olursanız sevinirim.
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Nesnelerin RowSource olaylarına yazdığınız alan tanımlamalarını sildikten sonra aşağıdaki kodu deneyiniz.

Kod:
Private Sub UserForm_Initialize()
    Me.ComboBox1.RowSource = ""
    Me.ComboBox2.RowSource = ""
    
    For Each Veri In Sheets("Veri").Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeConstants, 23)
        ComboBox1.AddItem Veri.Text
    Next
    
    For Each Veri In Sheets("Veri").Range("B2:B" & Rows.Count).SpecialCells(xlCellTypeConstants, 23)
        ComboBox2.AddItem Veri.Text
    Next
End Sub
 
Katılım
16 Ekim 2009
Mesajlar
58
Excel Vers. ve Dili
2007 Türkçe
Muhtemelen hücrelerden biri formül içerdiği için Hiçbir Hücre Bulunamadı hatası veriyor bunu nasıl giderebilirim?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Bu durumda aşağıdaki kodu deneyiniz.

Kod:
Private Sub UserForm_Initialize()
    Dim S1 As Worksheet, Alan As Range
    
    Set S1 = Sheets("Veri")
    
    Me.ComboBox1.RowSource = ""
    Me.ComboBox2.RowSource = ""
    
    On Error Resume Next
    
    Set Alan = S1.Range("A2:A" & S1.Cells(Rows.Count, 1).End(3).Row)
    
    For Each Veri In Alan
        If Veri.Text <> "" Then ComboBox1.AddItem Veri.Text
    Next
    
    Set Alan = S1.Range("B2:B" & S1.Cells(Rows.Count, 2).End(3).Row)
    
    For Each Veri In Alan
        If Veri.Text <> "" Then ComboBox2.AddItem Veri.Text
    Next
    
    On Error GoTo 0

    Set S1 = Nothing
    Set Alan = Nothing
End Sub
 
Katılım
16 Ekim 2009
Mesajlar
58
Excel Vers. ve Dili
2007 Türkçe
Çok teşekkürler çözüm tamamdır.
 
Üst