Combobox'tan (Birleştirilmiş veri ) seçime göre Textbox'a bilgi

Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Combobox'a Adı ve Soyadı sütunlarını birleştirerek aldım.
Kod:
Private Sub UserForm_Activate()
Workbooks.Open ThisWorkbook.Path & "\personel_bilgi_1.xls"
Worksheets("Sayfa3").Select
'======== Combobox1'e Veri Alma ======================
a = WorksheetFunction.CountA(Range("B:B"))
For i = 2 To a
ComboBox1.AddItem Cells(i, 2) & " " & Cells(i, 3)
Next
'========================================================
End Sub
Comboboxtan seçtiğim veriye göre Textboxlara verilerin gelmesi gerekiyor.
Dosyam ekte.
Daha önceden Combobox da tek veri vardı ve Seçime göre aktarma işini;
Kod:
Private Sub ComboBox1_Change()
Dim Aranan As String
Dim Satir As Integer
Aranan = ComboBox1.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.Value = Worksheets("Sayfa3").Range("d" & Satir)
End Sub
ile yapabiliyor idik.
Comboboxtaki veri birleştirilmiş olunca sorun çıktı. Yardımcı olabilirmisiniz.
Dosyam ekte.
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Merhaba;
Combobox Row Source ile alıp
Combonun change olayına
Textbox1.value = Coloumn(0)
Textbox2.value = Coloumn(1)

diyebilirsiniz yada Brleşik olacak derseniz
Ad soyad ayırma uygulamasını textyboxa uyarlabilirsiniz.

Şu an Excelde uzun bir makrom çalışyor. Daha sonra çözülmezse örnek dosya hazırlayabilirm.
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Amacım aşağıdaki kodları combobox'sa alınan birleştirilmiş veriyi sayfada aratıp bulduğunda ilgili textboxlara aktarmak.
Kod:
[LEFT]Private Sub ComboBox1_Change()
Dim Aranan As String
Dim Satir As Integer
Aranan = ComboBox1.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.Value = Worksheets("Sayfa3").Range("d" & Satir)
End Sub[/LEFT]
üstte ekli dosyamda örnek verirseniz daha iyi olur.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.:cool:
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın uzmanım;
örneğin ,
Combobox'tan seçilen veri B2'deki veri ise
Textbox1'e L2' deki veri
Textbox2'e B2&" "& C2 'deki veri
Textbox3'e E2' deki veri
Textbox5'e O2' deki veri
Textbox6'e N2' deki veri
Textbox39'a M2' deki veri gelecek
'=================================
Combobox'tan seçilen veri B5'deki veri ise
Textbox1'e L5' deki veri
Textbox2'e B5&" "& C5 'deki veri
Textbox3'e E5' deki veri
Textbox5'e O5' deki veri
Textbox6'e N5' deki veri
Textbox39'a M5' deki veri gelecek
işlem bu şekilde olacak.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın uzmanım;
örneğin ,
Combobox'tan seçilen veri B2'deki veri ise
Textbox1'e L2' deki veri
Textbox2'e B2&" "& C2 'deki veri
Textbox3'e E2' deki veri
Textbox5'e O2' deki veri
Textbox6'e N2' deki veri
Textbox39'a M2' deki veri gelecek
'=================================
Combobox'tan seçilen veri B5'deki veri ise
Textbox1'e L5' deki veri
Textbox2'e B5&" "& C5 'deki veri
Textbox3'e E5' deki veri
Textbox5'e O5' deki veri
Textbox6'e N5' deki veri
Textbox39'a M5' deki veri gelecek
işlem bu şekilde olacak.
M-N-O sütunlarında zaten veri yok ki
Textbox'taki verilerin yerlerinin değişmesini istiyorsanız textbox'ların yerlerini değiştiriniz.:cool:
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Örnek dosyamda yok doğrudur. Asıl dosyamda var.

Uzmanım. Sizin Örneğinizde veriler Alt alta satırlar halinde alıyor.
Bana gerekli olan sütunlardaki verileri alması.

Eklediğim Örnek Dosya da gelecek sütun kodlarını kendime göre ayarlayabilirim diye tamamını koymadım. Özür dilerim.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Ekli dosyayı inceleyiniz.
Veya örnek dosyaya gerekli yerlerine bazı veriler ekleyin.:cool:
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Durumu şöyle izah edeyim;
şu an kullandığım kodlar:

Personel Kaydı yaparken
Kod:
Workbooks("personel_bilgi.xls").Worksheets("sayfa3").Activate
Set pers = Workbooks("personel_bilgi.xls").Worksheets("sayfa3")
Dim bak As Range
Dim bk As Range
Dim say As Integer
Dim bulut As Integer
For Each bak In Range("D1:D" & WorksheetFunction.CountA(Range("D1:D65000")))
If bak.Text = TextBox3.Text Then
MsgBox "Bu Sicilde Bir personel bulundu."
Exit Sub
End If
Next bak
For Each bk In Range("E1:E" & WorksheetFunction.CountA(Range("E1:E65000")))
If bk.Text = TextBox4.Text Then
MsgBox "Bu T.C. No 'da bir kaydınız bulundu"
Exit Sub
End If
Next bk
 
say = WorksheetFunction.CountA(Range("B1:B65000"))
txtsira.Value = say
 
Cells(say + 1, 1).Value = txtsira.Value   'Sıra No
Cells(say + 1, 2).Value = TextBox1.Value  'Adı
Cells(say + 1, 3).Value = TextBox2.Value  'Soyadı
 
Cells(say + 1, 160).Value = TextBox1.Text & " " & TextBox2.Text
Combobox'a alırken birleştirdiğim veriyi ilgili textboxlara aktaramadığım için bende, ilk kayıtta FD sütunuda Combobox'a Adı Soyadını birliştirilmiş hali ile almak için Cells(say + 1, 160).Value = TextBox1.Text & " " & TextBox2.Text kodunu ekledim.

Combobox'tan seçilen verileri ilgili textboxlara aktarmak içinde
Kod:
Private Sub ComboBox1_Change()
Dim Aranan As String
Dim Satir As Integer
Aranan = ComboBox1.Value
If Aranan = "" Then Exit Sub
Satir = Worksheets("Sayfa3").Range("FD:FD").Cells.Find(Aranan, Worksheets("Sayfa3").Range("FD65000"), xlFormulas, xlPart, xlByRows, xlNext, False, False).Row
TextBox1.Value = Worksheets("Sayfa3").Range("L" & Satir)
TextBox2.Value = Worksheets("Sayfa3").Range("FD" & Satir)
TextBox3.Value = Worksheets("Sayfa3").Range("E" & Satir)
TextBox5.Value = Worksheets("Sayfa3").Range("O" & Satir)
TextBox6.Value = Worksheets("Sayfa3").Range("N" & Satir)
TextBox39.Value = Worksheets("Sayfa3").Range("M" & Satir)
End Sub
kodlarını kullandım.

Neden yukarıdaki soruyu sordum:
255 sütunda bana lazım. Bir sütunu bu hali ile boşa kullanmış oldum.
Kodlarım çok uzuyor dolayısı ile Excelin şişmesine ve yavaşlamasına sebep oluyor.


Yukarıda benim kullandığım kodlar var
Buda sizin Kodlarınız. Ben tek tek uğraşırken siz dört satırda işi çözdünüz.
Kod:
Private Sub ComboBox1_Click()
Dim i As Byte
If ComboBox1.ListCount < 1 Then Exit Sub
For i = 1 To 6
    Controls("TextBox" & i).Value = ComboBox1.Column(i - 1)
Next
End Sub
Private Sub UserForm_Activate()
Workbooks.Open ThisWorkbook.Path & "\personel_bilgi_1.xls"
Worksheets("Sayfa3").Select
'======== Combobox1'e Veri Alma ======================
ComboBox1.ColumnCount = 6
ComboBox1.ColumnWidths = "0;150;0;0;0;0"
a = WorksheetFunction.CountA(Range("B:B"))
For i = 2 To a
    ComboBox1.AddItem
    ComboBox1.Column(0, i - 2) = Cells(i, "L").Value
    ComboBox1.Column(1, i - 2) = Cells(i, "B").Value & " " & Cells(i, "C").Value
    ComboBox1.Column(2, i - 2) = Cells(i, "E").Value
    ComboBox1.Column(3, i - 2) = Cells(i, "O").Value
    ComboBox1.Column(4, i - 2) = Cells(i, "N").Value
    ComboBox1.Column(5, i - 2) = Cells(i, "M").Value
Next
'========================================================
 
End Sub
İlginize Teşekkürler. :bravo:
 
Son düzenleme:
Üst