Userformda bağlı textbox

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Arkadaşlar ve sayın hocalarımız, öncelikle başlık uygun olmuştur umarım.
Bir dosya hazırlamak istiyorum, küçük bir örnek dosya hazırladım.
ComboBox ile mehmet işaretleyince. Sağ textboxlara Sayfa1'deki tabloda olan, Mehmet bilgileri gelecek. Bunu nasıl sağlayabilirim.
Ayrıca sormuş olayım. Ben combobox olayını Sayfa1!A1:A3 şeklinde yapıyorum. İsim eklediğim zaman gözükmeyecek. Fazla yapsam açılır pencerede boş alan gözükecek. Bu nasıl sağlanıyor.
Şimdiden teşekkür ederim.
 

Ekli dosyalar

BAZGİRET

Destek Ekibi
Destek Ekibi
Katılım
5 Kasım 2011
Mesajlar
352
Excel Vers. ve Dili
TÜRKÇE. 2010
Merhaba
Kod:
Private Sub ComboBox1_Change()
Dim ss As Worksheet
Set ss = Worksheets("Sayfa1")
TextBox2.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 3, 0)
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Merhaba
Kod:
Private Sub ComboBox1_Change()
Dim ss As Worksheet
Set ss = Worksheets("Sayfa1")
TextBox2.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 3, 0)
End Sub
Hocam hemen deniyorum.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Alternatif.
Kod:
Private Sub ComboBox1_Change()
    Dim sat As Long
    sat = ComboBox1.ListIndex + 1
    TextBox2.Text = Cells(sat, "B")
    TextBox3.Text = Cells(sat, "C")
End Sub
2. sorunuzu anlayamadım.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
@BAZGİRET hocam. Çok teşekkür ederim. Hocam, dediğim gibi benim dosyam biraz daha büyük.

TextBox2.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 2, 0)

Burada, değişkenler. Mesela TextBox7 için M sütunundaki değer gelecekse. 3 değil de 5 sıra varsa (A1,A2,A3,A4,A5)

TextBox7.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:M" & ss.Range("B65536").End(3).Row), 2, 0)
Kırmızı bölge ne olur. Anlamak için soruyorum hocam.
Tekrar teşekkür ederim.
 

BAZGİRET

Destek Ekibi
Destek Ekibi
Katılım
5 Kasım 2011
Mesajlar
352
Excel Vers. ve Dili
TÜRKÇE. 2010
İkinci soru gözden kaçmış. Şunu deneyin.
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A" & Range("A65536").End(3).Row
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Merhaba,

Alternatif.
Kod:
Private Sub ComboBox1_Change()
    Dim sat As Long
    sat = ComboBox1.ListIndex + 1
    TextBox2.Text = Cells(sat, "B")
    TextBox3.Text = Cells(sat, "C")
End Sub
2. sorunuzu anlayamadım.
Hocam, öncelikle teşekkür ederim. İkinci sorum. Listenin altına "MURAT GÜNAY" eklersem, ComboBox'ta nasıl gözükür. Mutlaka RowSource'ce gidip A1:A4 mü yapmam lazım.
Hocam, sizin kodu uyarlamak daha kolay sanki. Mesela TextBox4 koydum. D sütununda, "Cinsiyet" olsun.

Dim sat As Long
sat = ComboBox1.ListIndex + 1
TextBox2.Text = Cells(sat, "B")
TextBox3.Text = Cells(sat, "C")
TextBox4.Text = Cells(sat, "D")
End Sub

Şeklinde olacak değil mi.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
İkinci soru gözden kaçmış. Şunu deneyin.
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A" & Range("A65536").End(3).Row
End Sub
Hocam, deniyorum. Ancak içeriğe yazdığımı silecek miyim. Duracak mı.
Teşekkür ederim.
 

BAZGİRET

Destek Ekibi
Destek Ekibi
Katılım
5 Kasım 2011
Mesajlar
352
Excel Vers. ve Dili
TÜRKÇE. 2010
@BAZGİRET hocam. Çok teşekkür ederim. Hocam, dediğim gibi benim dosyam biraz daha büyük.

TextBox2.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:C" & ss.Range("B65536").End(3).Row), 2, 0)

Burada, değişkenler. Mesela TextBox7 için M sütunundaki değer gelecekse. 3 değil de 5 sıra varsa (A1,A2,A3,A4,A5)

TextBox7.Value = WorksheetFunction.VLookup(ComboBox1.Value, ss.Range("A1:M" & ss.Range("B65536").End(3).Row), 2, 0)
Kırmızı bölge ne olur. Anlamak için soruyorum hocam.
Tekrar teşekkür ederim.
Düşey ara formülü vba olarak düzenlendi. 2 sayısı verinin arandığı sütun sayısını verir. Verinin aranacağı sütun sayısını yazınca istediğinizi verecektir.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Hocam, öncelikle teşekkür ederim. İkinci sorum. Listenin altına "MURAT GÜNAY" eklersem, ComboBox'ta nasıl gözükür. Mutlaka RowSource'ce gidip A1:A4 mü yapmam lazım.
Hocam, sizin kodu uyarlamak daha kolay sanki. Mesela TextBox4 koydum. D sütununda, "Cinsiyet" olsun.

Dim sat As Long
sat = ComboBox1.ListIndex + 1
TextBox2.Text = Cells(sat, "B")
TextBox3.Text = Cells(sat, "C")
TextBox4.Text = Cells(sat, "D")
End Sub

Şeklinde olacak değil mi.
Doğrudur.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Tamamdır hocam, hatta başlık satırı koydum ve sat = ComboBox1.ListIndex + 1 (2 yaptım, ikinci satırdan başlıyor.)
Hocam, bu konuyla ilgisiz ama başlığa label içinde sade yıl yazmam gerekiyor. Ben ne zaman yazsam, ya dosya bozuluyor, ya kilitleniyor. Neden yapamıyorum bilmiyorum. Yani önümüzdeki yıl 2022 olacak. Labelda 2021 YILI ÇİZELGESİ yazabilir misiniz. Size zahmet olacak ama.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Label4 düşünerek;
Kod:
Private Sub UserForm_Initialize()
    Label4 = Year(Date) & " YILI ÇİZELGESİ"
End Sub
İstediğiniz bu mu?
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
Label4 düşünerek;
Kod:
Private Sub UserForm_Initialize()
    Label4 = Year(Date) & " YILI ÇİZELGESİ"
End Sub
İstediğiniz bu mu?
Hocam
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A2:A" & Range("A65536").End(3).Row
End Sub

Diye kod var, başlık mükerrer olacak.

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A2:A" & Range("A65536").End(3).Row
Label4 = Year(Date) & " YILI ÇİZELGESİ"

End Sub

Şeklinde olacak değil mi.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,311
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2026
İkinci soru gözden kaçmış. Şunu deneyin.
Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A" & Range("A65536").End(3).Row
End Sub
Hocam, çok elzem değil ama, sayfada eklediğimi; kapatıp açınca combobox'da görüyor. Doğrudur değil mi.
 

BAZGİRET

Destek Ekibi
Destek Ekibi
Katılım
5 Kasım 2011
Mesajlar
352
Excel Vers. ve Dili
TÜRKÇE. 2010
Hocam, çok elzem değil ama, sayfada eklediğimi; kapatıp açınca combobox'da görüyor. Doğrudur değil mi.
Aynen öyle. Sayfaya veri girin sonra da comboboxu kontrol edin.
 
Üst