Combobox'a ExecuteExcel4Macro ile veri alıp Textbox değer atama

Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Çalışmalarımda combobox ve Textbox lara verileri Kitabı açıp veriyi alıp tekrar kapatıyordum. Üstadların yardımı ile Kapalı kitaptan veri almaya başladım.

Daha önceden Userform daki Combobox52 ye veriyi

Kod:
Workbooks.Open ThisWorkbook.Path & "\personel_bilgi.xls"
'======== Combobox52'ye Veri Alma ======================
a = WorksheetFunction.CountA(Range("B:B"))
For i = 2 To a
ComboBox52.AddItem Cells(i, 2)
Next
'========================================================
kodları ile alıp Comboboxtan yapılan seçime göre Textboxlara

Kod:
Private Sub ComboBox52_Change()
Workbooks("personel_bilgi.xls").Worksheets("sayfa3").Activate
Dim Aranan As String
Dim Satir As Integer
Aranan = ComboBox52.Value
If Aranan = "" Then Exit Sub
Satir = Worksheets("Sayfa3").Range("b:b").Cells.Find(Aranan, Worksheets("Sayfa3").Range("B65000"), xlFormulas, xlPart, xlByRows, xlNext, False, False).Row
TextBox1.Text = Worksheets("Sayfa3").Range("M" & Satir)
TextBox2.Text = Worksheets("Sayfa3").Range("C" & Satir)
TextBox3.Text = Worksheets("Sayfa3").Range("D" & Satir)
TextBox4.Text = Worksheets("Sayfa3").Range("H" & Satir)
TextBox5.Text = Worksheets("Sayfa3").Range("F" & Satir)
TextBox6.Text = Worksheets("Sayfa3").Range("P" & Satir)
TextBox7.Text = Worksheets("Sayfa3").Range("O" & Satir)
TextBox8.Text = Worksheets("Sayfa3").Range("AC" & Satir)
TextBox9.Text = Worksheets("Sayfa3").Range("AQ" & Satir)
TextBox10.Text = Worksheets("Sayfa3").Range("W" & Satir)
Workbooks("personel_bilgi.xls").Close False
End Sub
kodu ile alıp kitabı kapatıyordum.

Şimdi ise Kapalı Kitaptan

Kod:
Private Sub UserForm_Initialize()
Dim MyArg As String
Dim i As Long, sat As Long
'Personel İsimleri
sat = ExecuteExcel4Macro("COUNTA('" & ThisWorkbook.Path & "\[personel_bilgi.xls]Sayfa3'!C2)")
For i = 1 To sat
MyArg = "'" & ThisWorkbook.Path & "\[personel_bilgi.xls]Sayfa3'!R" & i
ComboBox52.AddItem ExecuteExcel4Macro(MyArg & "C2")
Next
Combobox52 ye veriyi aldım.
Ancak Combobox yapılan seçimden sonra Textbox lara veriyi nasıl alacağım ?
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu iş için bir kaç metot uygulanabilir. Hem veri alınan hemde veri alınacak olan kapalı dosyanızdan bir örnek eklerseniz çözüm üretmek kolaylaşacaktır.
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Dosya Ekte. Menü den Personel işlemlerinden Geçici Görev bölümünde.

Üzerinde eski kodlar var. Kitabı açıp bilgileri alıp sokra kitabı kapattığım kodlar.

Dosyanın ilgili kısımlarını ekledim. Tam dosya zipli hali 5 mb civarında
 

Ekli dosyalar

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyayı açmadan textboxlara verileri aşağıdaki gibi bir mantıkla yükleyebilirsiniz. Ben combobox52 ye bir adet ilgili kodu yazdım. Siz diğerlerini tamamlarsınız. C13 teki 13 sayısı M sütununu temsil etmektedir.

Kod:
Private Sub ComboBox52_Change()
MyArg = "'" & ThisWorkbook.Path & "\[personel_bilgi.xls]Sayfa3'!R" & ComboBox52.ListIndex + 1
TextBox1.Text = ExecuteExcel4Macro(MyArg & "C13")
.
.
.
End Sub
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Teşekkürler. İşlem Tamam

Kodları uyarlarım.

Kod:
Private Sub ComboBox52_Change()
MyArg = "'" & ThisWorkbook.Path & "\[personel_bilgi.xls]Sayfa3'!R" & ComboBox52.ListIndex + 1
TextBox1.Text = ExecuteExcel4Macro(MyArg & "C13")
TextBox2.Text = ExecuteExcel4Macro(MyArg & "C3")
TextBox3.Text = ExecuteExcel4Macro(MyArg & "C4")
TextBox4.Text = ExecuteExcel4Macro(MyArg & "C8")
TextBox5.Text = ExecuteExcel4Macro(MyArg & "C6")
TextBox6.Text = ExecuteExcel4Macro(MyArg & "C16")
TextBox7.Text = ExecuteExcel4Macro(MyArg & "C15")
TextBox8.Text = ExecuteExcel4Macro(MyArg & "C29")
TextBox9.Text = ExecuteExcel4Macro(MyArg & "C43")
TextBox10.Text = ExecuteExcel4Macro(MyArg & "C23")
End Sub
 
Üst