• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Combobox da Hücre Sayısını Belirtemedim.

  • Konbuyu başlatan Konbuyu başlatan uyecik
  • Başlangıç tarihi Başlangıç tarihi
Katılım
23 Temmuz 2008
Mesajlar
79
Excel Vers. ve Dili
türkçe 2003
Arkadaşlar bir combobox oluşturdum. A sütunundaki verileri bunun içine yazdırmak istiyorum. Ama A sütünuna zaman zaman veri eklendiğinden satır sayısı belli değil.
Bende
say = WorksheetFunction.CountA(verisayfasi.Range("a1:a150"))
yaparak kaç tane veri var saydım. Ama bunu combobox a alamadım.

Combobox1.RowSource =range(cells(2,1),cells(say,1))

gibi bir şeyler denedim ama bir türlü olmadı.
Yol gösterebilecek birileri var mı acaba.
 
KOD

Kod:
ComboBox1.Clear
For j = 1 To Cells(Rows.Count, "A").End(3).Row
ComboBox1.AddItem Cells(j, "A").Value
Next

DİĞER KOD

Kod:
ComboBox1.RowSource = ""
say = Cells(Rows.Count, "A").End(3).Row
ComboBox1.RowSource = Range(Cells(1, "A"), Cells(say, "A")).Address
 
Merhaba,
Deneyiniz.

Kod:
Private Sub UserForm_Initialize()

    Dim i As Integer
    Dim Sh  As Worksheet
    
    Set Sh = Sheets("Sayfa2")
    i = Sh.Cells(Rows.Count, "A").End(3).Row
    
    ComboBox1.RowSource = Sh.Name & "!A1:A" & i
    
End Sub
 
Arkadaşlar anlatamadığım bir şey mi var acaba. Yoksa birçok kişiye kolay geleceğine eminim.
Bir de şöyle ifade edeyim
Veriler sayfasında A sütunun tamamını değil sadece A sütununda ki dolu olan hücrelerin verilerini Combobox'a almaya çalışıyorum.
Bunun için de ilk önce dolu hücrelerin sayısını
say = WorksheetFunction.CountA(verisayfasi.Range("a1:a150"))
bu şekilde tespit ettim.
Ardından Combobox1 içerisine ilk hücre (Başlık) hariç verileri almaya çalıştım. Yapamadığım nokta burası.
Denemelerim ise şöyle

Combobox1.RowSource = Range(Cells(2, 1), Cells(say, 1))

Ama olmuyor.
 
Arkadaşlar sizler cevap vermişsiniz ama ben görememişim. Tekrar sorumu düzeltip sorayım diye yazdıktan sonra görebildim.
Hemen kontrollerimi yapıyorum teşekkürler.
 
KOD

Kod:
ComboBox1.Clear
For j = 1 To Cells(Rows.Count, "A").End(3).Row
ComboBox1.AddItem Cells(j, "A").Value
Next

DİĞER KOD

Kod:
ComboBox1.RowSource = ""
say = Cells(Rows.Count, "A").End(3).Row
ComboBox1.RowSource = Range(Cells(1, "A"), Cells(say, "A")).Address

Çok teşekkür ederim. İkinci kod benim örneğim benzer olduğu için hemen önce onu denedim ve oldu.
Ama mümkünse size sonundaki Address yazısının ne olduğunu onu yazmadan neden olmadığını sormak istiyorum. Yanlış anlaşılmasın olayı anlamak için.
Bir de Range(Cells(1, "A") şu ifade de A yazmışsınız ya ben cells komutun da Range(Cells(1, 1) yazınca neden olmuyor. Aynı şey değil mi?
 
Merhaba,
Deneyiniz.

Kod:
Private Sub UserForm_Initialize()

    Dim i As Integer
    Dim Sh  As Worksheet
    
    Set Sh = Sheets("Sayfa2")
    i = Sh.Cells(Rows.Count, "A").End(3).Row
    
    ComboBox1.RowSource = Sh.Name & "!A1:A" & i
    
End Sub

Necdet bey çok teşekkür ederim. Sizin yönteminizi de denedim ve o da oldu. Demek ki bir şeyin birçok yöntemi olabiliyormuş.
 
"RowSource" veri kaynağı demektir. Burada hücre adresi belirtmek durumundasınız. Bu sebeple size önerilen kodlarda "Address" ifadesi kullanılmıştır.
 
"RowSource" veri kaynağı demektir. Burada hücre adresi belirtmek durumundasınız. Bu sebeple size önerilen kodlarda "Address" ifadesi kullanılmıştır.

Bunu öğrendiğim iyi oldu. Birşeyi neden yaptığımı bilmeden yapınca sürekli aklımın bir köşesinde rahatsız ediyor. Teşekkürler.
 
Geri
Üst