• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Comboxa da textboxa veri aktarma

  • Konbuyu başlatan Konbuyu başlatan puma22
  • Başlangıç tarihi Başlangıç tarihi
Katılım
24 Ekim 2006
Mesajlar
130
Excel Vers. ve Dili
2003
Comboxdan seçtiğim isimlerin sırasıyla texboxlara aktarılmasını istiyorum kullandığım formül seçtiğim ismi sürekli aynı texboxun üzerine yazıyor acaba atladığım biyermi var

Private Sub ComboBox1_Click
TexBox1=ComboBox.Column (0)
TexBox2=ComboBox.Column (1)
TexBox3=ComboBox.Column (2)
End Sub

Private Sub UserForm_Activete()
With.UserForm.ComboBox1
.Addıtem"AHMET"
.Addıtem"HAKAN"
.Addıtem"YUSUF"
End With
End Sub

kullandığım formül bu
 
Sayın Puma22;

Kod:
Private Sub ComboBox1_Click()
TextBox1.Text = ComboBox1.Value
End Sub

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A200"
End Sub

kodlarını kendinize uyarlarsanız. Umarım sorunuzun cevabı olur.

Saygılarımla.
 
HakanBey ben soruyu tam anlatamadım sanırm benim elimde bir tablo var ve comboBox bölümene yaklaşık 10 tane isim girdim ve bu isimlerden istediklerimi 5adet texboxlara aktarmak istiyorum
 
HakanBey ben soruyu tam anlatamadım sanırm benim elimde bir tablo var ve comboBox bölümene yaklaşık 10 tane isim girdim ve bu isimlerden istediklerimi 5adet texboxlara aktarmak istiyorum

Comboboxtan her tıkladığınız veri ayrı Textbox'lara mı gidecek?
 
hayır ilk texbox3 se birsonraki texbox4 de bir sonraki .....10 tane texbox var çünkü
 
örnek tablo sundum isimler çok fazla ben sadece 3 tane yazdım textbox ise 5 adet ben istediğim 5 kişiyi buralara aktarmak istiyorum
 
Son düzenleme:
Sanırım sorumu tam anlatamadım ilgilenen varsa açıklama yapabilirim
 
Sayın Puma22;

Sorunuzu anladığımı sanıyorum. A1 hücresinden başlayarak verilerin olduğunu varsayarak aşağıdak kodları ürettim.
Kod:
Private Sub UserForm_Initialize()
Dim e As Variant
If Range("A1") = "" Then
 say = WorksheetFunction.CountA(Range("A1:A200"))
      ComboBox1.RowSource = "A1:A2000" & say + 1
    Else
      say = WorksheetFunction.CountA(Range("A1:A200"))
      ComboBox1.RowSource = "A1:A2000" & say
    End If
End Sub
Private Sub ComboBox1_Click()
    Dim bak As Range
    For Each bak In Range("A1:A200" & WorksheetFunction.CountA(Range("A1:A200")))
        If bak.Value = ComboBox1.Value Then
            bak.Select
            TextBox1.Value = Cells(1, 1).Value
            TextBox2.Value = Cells(2, 1).Value
            TextBox3.Value = Cells(3, 1).Value
            TextBox4.Value = Cells(4, 1).Value
            TextBox5.Value = Cells(5, 1).Value
            Exit Sub
        End If
    Next bak
End Sub

Bir de bu kodları deneyin. Eğer bu kodlar istediğiniz işlemi görmüyor ise, lütfen madde, madde istediklerinizi yazarsanız, size yardımcı olmaya çalışayım.

Saygılarımla.
 
Sn hakanbent

İzninizle önerdiğiniz kodda bazı mantık ve yazım hataları var onları düzeltelim.

Kod:
[LEFT]Private Sub UserForm_Initialize()
Dim e As Variant
If Range("A1") = "" Then
 say = WorksheetFunction.CountA(Range("A1:A200"))
      ComboBox1.RowSource = "A1:A2000" & say + 1
    Else
      say = WorksheetFunction.CountA(Range("A1:A200"))
      ComboBox1.RowSource = "A1:A2000" & say
    End If
End Sub

Yukarıdaki kodda Combobox1.Rowsource="A1:A" & say+1 olmalı
ayrıca elseden sonrasına gerek yok.

Kod:
Private Sub ComboBox1_Click()
    Dim bak As Range
    For Each bak In Range("A1:A200" & WorksheetFunction.CountA(Range("A1:A200")))
        If bak.Value = ComboBox1.Value Then
            bak.Select
            TextBox1.Value = Cells(1, 1).Value
            TextBox2.Value = Cells(2, 1).Value
            TextBox3.Value = Cells(3, 1).Value
            TextBox4.Value = Cells(4, 1).Value
            TextBox5.Value = Cells(5, 1).Value
            Exit Sub
        End If
    Next bak
End Sub[/LEFT]

Yukarıdaki koddada bir önerim olacak. Eğer verileri comboboxa sayfadaki sırası ile alıyorsanık ki rowsource özelliğini kullandığınıza göre böyle alıyorsunuz, bu durumda döngü kullanmaya gerek yoktur. Satır değeri olarak comboboxın listindex değeri kullanılabilir. Örneğin,

Kod:
Private Sub ComboBox1_Click()
sat= ComboBox1.listindex+1
TextBox1.Value = Cells(sat, 1).Value
TextBox2.Value = Cells(sat, 2).Value
TextBox3.Value = Cells(sat, 3).Value
TextBox4.Value = Cells(sat, 4).Value
TextBox5.Value = Cells(sat, 5).Value
End Sub
 
Comboxdan seçtiğim isimlerin sırasıyla texboxlara aktarılmasını istiyorum kullandığım formül seçtiğim ismi sürekli aynı texboxun üzerine yazıyor acaba atladığım biyermi var

Private Sub ComboBox1_Click
TexBox1=ComboBox.Column (0)
TexBox2=ComboBox.Column (1)
TexBox3=ComboBox.Column (2)
End Sub

Private Sub UserForm_Activete()
With.UserForm.ComboBox1
.Addıtem"AHMET"
.Addıtem"HAKAN"
.Addıtem"YUSUF"
End With
End Sub

kullandığım formül bu

Yazdığınız kodlarda mantık hatası var. Yapmak istediğiniz comboboxtan çoklu seçim yaparak tüm seçtiklerinizi textboxlara aktarmakmı? eğer öyle ise comboboxta çoklu seçim yapamazsınız bunun yerine listbox kullanabilirsiniz.
 
Çoklu seçim ile neyi kasdetdiniz anlamadım ama yapmak istediğim comboboxdan istediklerimi tek tek seçerek textboxlara atmak yani ilk seçtiğim textbox1 gitdiyse ikinci seçtiğim textbox2 ye gitmesi
 
Son düzenleme:
Çoklu seçim ile neyi kasdetdiniz anlamadım ama yapmak istediğim comboboxdan istediklerimi tek tek seçerek textboxlara atmak yani ilk seçtiğim textbox1 gitdiyse ikinci seçtiğim textbox2 ye gitmesi

Bu durumda aşağıdaki kodu deneyin.

Kod:
Private Sub ComboBox1_Click
for a=1 to 3
if controls("TextBox" & a)="" then controls("TextBox" & a)=ComboBox1
next
End Sub
 
Kodu yeniledim, bir harf eksikti onu ilave ettim. (TexBox değil TextBox olacaktı)
 
Sn Leventbey ben t harfini eklemiştim önceden ,kod içindeki controls mavi oluyor çalıştırınca
 
Yukarıdaki kodu yeniledim tekrar denermisiniz.
 
Sayın LeventM Hocam;

Yazdığım kodlardaki hataları düzelltiğiniz için çok teşekkür ederim. Gerçi VBA konusunda çok iyi değilim. Sitemizde bulunan bazı örnekleri inceleyerek yardım etmeye çalıştım. Anlayışınız için tekrar teşekkür ederim. Puma22 arkadaşım da umarım anlayış ile karşılar.

En derin Saygılarımla.
 
Arkadaşlar biraz araştırma yaptım ComboBoxdan olmuyomuş ListBox kullanmak gerekiyormuş herkese teşekkür ederim
 
Geri
Üst