Combo box a veri getirme

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba arkadaşlar.
Ekdeki dosyamda database sheetimden bir combo box a veri çekmek istiyorum.
Combo box ın içine Database de bulunan isimlerden birini yazdığımda Kod alanına ismin yanındaki kod gelecek.Bu arada combo nun içine isim yazarken ilk harfi yazmaya başlar başlamaz ekranda onunla başlayan isimlerin gelmesini istiyorum.
Rica etsem yardımcı olurmusunuz
 

Ekli dosyalar

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Ben siteden araştırtırp aşağıdaki kodu kendime göre düzenledim ama. Olmadı arkadaşlar.
Combobox ı tıkladığımda "=EMBED("Forms.ComboBox.1";"")" çıkıyor. Acaba bu fonksiyonla mı daha kolay olacak. Olursa nasıl olacak.

Kod:
Private Sub ComboBox1_EXİT()
For Each veri In Worksheets("database").Range("b2:b" & Worksheets("database").Range("b65500").End(3).Row)
    If veri = ComboBox1 Then Exit Sub
Next
If MsgBox("Bu kayıt mevcut değil. Eklensin mi?", vbYesNo + vbQuestion, "Bu kayıt mevcut değil!") = vbNo Then Exit Sub
Worksheets("database").Range("B" & Worksheets("database").Range("b65500").End(3).Row + 1) = ComboBox1
End Sub
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "database!b2:b65500"
ComboBox1.MatchEntry = fmMatchEntryComplete
End Sub
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Sayfanın kod bölümüne kopyalayın ve deneyin.
Kod:
Option Explicit
Private Sub ComboBox1_Change()
Dim S1 As Worksheet, STR As Long
Set S1 = Sheets("DATABASE")
With WorksheetFunction
STR = .Match(ComboBox1, S1.Range("B:B"), 0)
End With
Range("A2") = S1.Cells(STR, "A")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim S1 As Worksheet, STR As Long
Set S1 = Sheets("DATABASE")
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
ComboBox1.Clear
For STR = 2 To S1.Cells(Rows.Count, "B").End(xlUp).Row
ComboBox1.AddItem S1.Cells(STR, "B")
Next
End Sub
Notlar :
1 - C1 hücresini seçtiğinizde comboboxtaki veriler güncellenecektir. ( Kitabı kapattığınızda comboboxta hiç veri görünmez bunun için böyle bir yol izledim )
2 - Dosyayı kaydederken makro içerebilen dosya şeklinde kayıt yapmayı unutmayınız.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Öncelikle yardımlarınız için çok teşekkür ederim. Ben kodu kopyaladım ama çalıştıramadım. Dosyam ekde rica etsem nerde hata yapmışım yardımcı olabilir misiniz?
 

Ekli dosyalar

Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
çözdüm tamamdır sheet1 deki C1 seçili olacakmış. Kusurabakmayın. Elinize sağlık istediğim tam buydu teşekkürler
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
çözdüm tamamdır sheet1 deki C1 seçili olacakmış. Kusurabakmayın. Elinize sağlık istediğim tam buydu teşekkürler
C1 in seçili olmasına gerek yok. Kitabı açtığınızda bir kere C1 hücresini seçmeniz yeterli.
Kolay Gelsin.
 
Katılım
28 Kasım 2007
Mesajlar
919
Excel Vers. ve Dili
Office 2010 İngilizce
Merhaba,
Sayfa üzerindeki tek bir combo box için aşağıdaki kodu asi kral üstat yazmıştı.
Kod:
Option Explicit
Private Sub ComboBox1_Change()
Dim S1 As Worksheet, STR As Long
Set S1 = Sheets("DATABASE")
With WorksheetFunction
STR = .Match(ComboBox1, S1.Range("B:B"), 0)
End With
Range("A2") = S1.Cells(STR, "A")
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim S1 As Worksheet, STR As Long
Set S1 = Sheets("DATABASE")
If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub
ComboBox1.Clear
For STR = 2 To S1.Cells(Rows.Count, "B").End(xlUp).Row
ComboBox1.AddItem S1.Cells(STR, "B")
Next
End Sub
BEnde ikinci ekledim. Code da değişiklik yaparak halletmeye çalıştım ama olmadı. Yardımcı olabilir misiniz rica etsem
Kod:
Private Sub ComboBox1_Change()
Dim S1 As Worksheet, STR As Long
Set S1 = Sheets("DATABASE")
With WorksheetFunction
STR = .Match(ComboBox1, S1.Range("B:B"), 0)
End With
Range("D10") = S1.Cells(STR, "A")
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim S1, S2 As Worksheet, STR As Long

Set S1 = Sheets("DATABASE")
Set S2 = Sheets("BANKALAR")

If Intersect(Target, Range("F1")) Is Nothing Then Exit Sub
ComboBox1.Clear
ComboBox2.Clear

For STR = 2 To S1.Cells(Rows.Count, "B").End(xlUp).Row
ComboBox1.AddItem S1.Cells(STR, "B")

For STR = 2 To S2.Cells(Rows.Count, "A").End(xlUp).Row
ComboBox2.AddItem S2.Cells(STR, "A")

If Intersect(Target, Range("F5")) Is Nothing Then Exit Sub
ComboBox2.Clear
ComboBox1.Clear

Next


End Sub
Private Sub ComboBox2_Change()
Dim S2 As Worksheet, STR As Long
Set S2 = Sheets("BANKALAR")
With WorksheetFunction
STR = .Match(ComboBox2, S2.Range("A:A"), 0)
End With
End Sub
 

asi_kral

Özel Üye
Katılım
22 Şubat 2012
Mesajlar
2,824
Excel Vers. ve Dili
Excel 2007 Türkçe
Merhaba
Burada yapmak istediğiniz nedir. Açıklama ve örnek dosya eklerseniz yardımcı olmaya çalışırım.
 
Katılım
7 Ekim 2013
Mesajlar
16
Excel Vers. ve Dili
2007
ingilizce
Arkadaşlar Merhaba,

sayfa1 ve sayfa2 de birer tane combobox'ım var ve ikiside aynı değerler yüklenmiş örneğin "ocak" "şubat" "mart" olsun. Ben sayfa1deki comboboxta örneğin "mart" ı seçtiğimde sayfa2 deki comboboxta otomatik olarak "mart" olsun. Bu konuda yardımcı olabilirmisiniz.

Teşekkürler
 
Üst