Combobox hakkında yardım

Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Private Sub UserForm_Initialize()
Dim say As Integer
Dim satir As Integer
say = WorksheetFunction.CountA(Range("J4:J3004")) + 1
For satir = 10 To say
combobox1.AddItem Cells(satir, 10)
Next satir
End Sub

Arkadaşlar,
Yapmaya çalıştığım programda bir combobox kullanayım dedim. Yukarıdaki formüle göre,
J4 hücresinden itibaren alt satırdaki verilerin combobox da görünmesini istedim.
Fakat benim proğramda 15’den fazla sayfa var. Bunların ilki ANA SAYFA ismindedir. veriler bu sayfadan alınıyor. Userform ANA SAYFA üzerinde çalışırken herhangi bir sorun yok. Normal çalışıyor.
Benim sorunum, userform başka sayfalar üzerinde çalışırken aynı kaynaktaki verileri alsın. Yani ben hangi sayfada çalışırsam çalışayım, user form açıkken combobox ANA SAYFA isimli sayfanın J4:J3000 aralığındaki verileri görüntülesin.
Ayrıca aynı isimden birden fazla olanları tekrar göstermesin. Yani bir isimden birden fazla olsa bile sadece bir tanesini göstersin ve boş satır göstermesin.
Bunları combobox’da yapma şansımın olup olmadığını bilemiyorum. Ama yapabilirsem çok iyi olacak.
Bu konuda yardımı olacak arkadaşlara şimdiden minnettarlığımı bildirir, teşekkürlerimi sunarım.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Şu şekilde deneyin,

Kod:
Private Sub UserForm_Initialize()
Dim say As Integer
Dim satir As Integer

say = WorksheetFunction.CountA([COLOR=Blue][B]Sheets("Ana Sayfa").[/B][/COLOR]Range("J4:J3004")) + 1

For satir = 10 To say
   combobox1.AddItem [COLOR=Blue][B]Sheets("Ana Sayfa").[/B][/COLOR]Cells(satir, 10)
Next satir
End Sub
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Sayın Zeki Gürsoy bey'e sonsuz teşekkürler.
Doğrusu bu kadar hızlı bir cevap beklemiyordum. Derler ya hani daha mürekkebi bile kuramadan diye.
Sonsuz teşekkürler. Ancak şu aynı ismin birden fazla olması durumu hakkında da bir çözüm bulamaz mıyız? Yani aynı isimden birden fazla olması halinde yalnızca bir tanesinin görünmesini nasıl temin edebiliriz.
bu konuda da yardımınız olursa inanın çok sevinirim.
Olmazsa da ilginizden dolayı çok teşekkürler
 
Katılım
5 Ağustos 2007
Mesajlar
247
Excel Vers. ve Dili
excel 2003 tr
Selam
Zeki hocamın yaptığına Altarnatif olarak ComboBoxın Properties kısmındaki Rowsource kısmına AnaSayfa!j4:j3004 yazın
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,369
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Kod:
Private Sub UserForm_Initialize()
Dim say As Integer
Dim satir As Integer

say = WorksheetFunction.CountA(Sheets("Ana Sayfa").Range("J4:J3004")) + 1

With Sheets("Ana Sayfa")

    For satir = 10 To say

        If WorksheetFunction.CountIf(.Range("j10:j" & satir), _
            .Cells(satir, 10)) = 0 Then

                combobox1.AddItem Sheets("Ana Sayfa").Cells(satir, 10)
        End If

    Next satir

End With

End Sub
 
Katılım
6 Mart 2008
Mesajlar
88
Excel Vers. ve Dili
EXCEL 2003
Değerli yorumlarından ve katkılarından dolayı Hassan26 ve Zeki Gürsoy'a sonsuz teşekkürler.
Ancak Zeki beyin vermiş olduğu ikinci formülü çalıştrımadım. Sanırım bunu sabah sakin bir zihinle değerlendirsem daha iyi olacak.
Sizlere sonsuz teşekkürler.
 
Üst