• DİKKAT

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

Listbox'a çekilen veriyi formda gerekli yerlere gönderme

Katılım
5 Şubat 2009
Mesajlar
188
Excel Vers. ve Dili
Microsoft Office 365
Merhaba arkadaşlar,

Yaptıgım bir çalışmada iki nokta da takıldım kaldım. Yardımcı olabilirseniz bu sıkıntımı çözmek istiyorum.

benim oluşturdugum yapıda userform1 ile Ana Tablo sayfasına kullanıcılar ilk olarak "GİRİŞ" frame bölümündeki formu dolduruyorlar. belli bir süre sonra(1-2 ay) zaman degişiyor. kullanıcıların bu girdikleri formun "SONUC" frame’indeki ilgili bölümleri de doldurmaları gerekiyor. benim yapmak istedigim userform2’deki listbox'a girilen dataları cekerek kullanıcılar güncellemek(SONUCLANDIRMAK) istedigi datayı userform1 de secerek Userform1’e getirmesi ve gerekli yerleri doldurduktan sonra(SONUC frame’i) güncellemeyi kaydet butonu ile “ANA TABLO” sayfasında secilen index’in yanına kaydetmesi.

ben userform2 de bir listbox oluşturdum ve Initialize'ına doldurulan dataları cekiyorum ve listbox'ın click işlemcisi ile de secilen dataları userform1 de gerekli yerlere cekiyorum. H kolonundan sonra girişler altalta oldugu için listindex + olarak artırdıgım zaman istedigim yerlere getiremiyorum listbox daki datayı. ve acıkcası data userform1'e geldikten sonra girilen kaydı eski kaydın yanına nasıl yazdıracagımı da çözemedim.
örnek dosyamı ekliyorum umarım derdimi anlatabilmişimdir.
 

Ekli dosyalar

Son düzenleme:
Yalnızca adı soyadını yaptım.
Diğerlerini size bıraktım.
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub CommandButton4_Click()
Dim sh As Worksheet, sat As Long
If TextBox102.Value = "" Then
    MsgBox "listboxtan güncellenecek veriyi seçiniz!!", vbCritical, "UYARI"
    Exit Sub
End If
Application.ScreenUpdating = True
sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value
End Sub
 

Ekli dosyalar

bu dediğiniz işlemleri form üzerinden sırasıyla şöyle şöyle yapın, şunu kayıt edin, burayı tıklayın, şuraya şu gelmesi lazım ve sonra şu olması lazım gibisinden form üzerinden anlatır mısınız yoksa sizin anlattığınız şekilde userform1 üzerindeki 96 textbox, 15 Combobox ve 4 tane düğmeden hangisine basıp ne olacak?
 
Yalnızca adı soyadını yaptım.
Diğerlerini size bıraktım.
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub CommandButton4_Click()
Dim sh As Worksheet, sat As Long
If TextBox102.Value = "" Then
    MsgBox "listboxtan güncellenecek veriyi seçiniz!!", vbCritical, "UYARI"
    Exit Sub
End If
Application.ScreenUpdating = True
sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value
End Sub
valla helal olsun daha ben anlayamadığım soruya cevap yazamadan, siz cevabı yapıştırmışsınız :D.
 
valla helal olsun daha ben anlayamadığım soruya cevap yazamadan, siz cevabı yapıştırmışsınız :D.

öncelikle tesekkürler,

bu işlemde textbox11,12,13 neye göre anatablo da gerekli yerlere atacagım acaba,

sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value

bu işlemde nasıl bir degişiklik yapmam gerekiyor.

diger bir sıkıntım.

userform2 nin listbox'ının click olayına
Kod:
Private Sub ListBox1_Click()
On Error Resume Next
For s = 1 To 25
UserForm1.Controls("textbox" & s) = ""
Next
For s = 1 To 25
UserForm1.Controls("COMBOBOX" & s) = ""
Next
UserForm1.TextBox102.Value = ListBox1.ListIndex + 4
UserForm1.TextBox4.Value = Format(Date, "dd.mm.yyyy")

[COLOR="Blue"]UserForm1.ComboBox2.Text = Sheets("ANA TABLO").Range("a" & ListBox1.ListIndex + 4)
UserForm1.ComboBox4.Text = Sheets("ANA TABLO").Range("b" & ListBox1.ListIndex + 4)
UserForm1.ComboBox3.Value = Sheets("ANA TABLO").Range("C" & ListBox1.ListIndex + 4)
UserForm1.TextBox2.Text = Sheets("ANA TABLO").Range("D" & ListBox1.ListIndex + 4)
UserForm1.ComboBox1.Text = Sheets("ANA TABLO").Range("E" & ListBox1.ListIndex + 4)
UserForm1.ComboBox5.Text = Sheets("ANA TABLO").Range("G" & ListBox1.ListIndex + 4)
UserForm1.TextBox4.Text = Sheets("ANA TABLO").Range("F" & ListBox1.ListIndex + 4)[/COLOR]
[COLOR="Red"]If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 5) = "ADANA") Then
UserForm1.TextBox11.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 5)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 6) = "ANKARA") Then
UserForm1.TextBox12.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 6)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 7) = "ANTALYA") Then
UserForm1.TextBox13.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 7)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 8) = "BURSA") Then
UserForm1.TextBox15.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 8)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 9) = "DIYARBAKIR") Then
UserForm1.TextBox16.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 9)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 10) = "IST 1") Then
UserForm1.TextBox14.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 10)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 11) = "IST 2") Then
UserForm1.TextBox17.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 11)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 12) = "IZMIR") Then
UserForm1.TextBox18.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 12)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 13) = "KADIKOY") Then
UserForm1.TextBox19.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 13)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 14) = "MARMARA") Then
UserForm1.TextBox20.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 14)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 15) = "TRABZON") Then
UserForm1.TextBox21.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 15)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 16) = "H.GRUBU") Then
UserForm1.TextBox22.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 16)
End If[/COLOR]


mavi ile işaretlediklerimi userform'da gerekli yerlere sıkıntısız bir şekilde atabiliyorum,fakat kırımızı ile isaretliler bir alt satıra atmam gerektigi için ve her zaman her satır da dolu olmadıgı için satır numarasında sıkıntı cıkıyor. esasında sizin yaptıgınız kodda aynı sıkıntı var.

toplamda en fazla 21 tane alt satır olabiliyor fakat bazen 10 da olabilir 5 de olabilir, 21 tane oldugu zaman sıkıntı olmuyor ama 21 de az oldugu zaman ve sırasız oldugu zaman maalesef düzgün calısmıyor listbox click olayı. umarım anlatabilmişimdir.
 
Orion1' a teşekkür etmelisiniz.
 
Orion1 tarafından gönderildi Mesajı Görüntüle
Yalnızca adı soyadını yaptım.
Diğerlerini size bıraktım.
Ekli dosyayı inceleyiniz.
Kod: (Rahat kopyalayabilmeniz için tüm kodu seçmenizi sağlar)
Private Sub CommandButton4_Click()
Dim sh As Worksheet, sat As Long
If TextBox102.Value = "" Then
MsgBox "listboxtan güncellenecek veriyi seçiniz!!", vbCritical, "UYARI"
Exit Sub
End If
Application.ScreenUpdating = True
sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value
End Sub

Orion1' a teşekkür etmelisiniz.

aynı iletide alıntılamıstım ama cıkmamış tekrar tesekkürler.
 
Son düzenleme:
Yalnızca adı soyadını yaptım.
Diğerlerini size bıraktım.
Ekli dosyayı inceleyiniz.:cool:
Kod:
Private Sub CommandButton4_Click()
Dim sh As Worksheet, sat As Long
If TextBox102.Value = "" Then
    MsgBox "listboxtan güncellenecek veriyi seçiniz!!", vbCritical, "UYARI"
    Exit Sub
End If
Application.ScreenUpdating = True
sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value
End Sub


merhaba orion1 bey, bu konuda müsait oldugunuz bir zamanda yardımcı olabilir misiniz?

bu işlemde textbox11,12,13 neye göre anatablo da gerekli yerlere atacagım acaba,

sat = TextBox102.Value
Set sh = Sheets("ANA TABLO")
sh.Cells(sat, "A").Value = ComboBox2.Value

bu işlemde nasıl bir degişiklik yapmam gerekiyor.

diger bir sıkıntım.

userform2 nin listbox'ının click olayına
Kod:
Private Sub ListBox1_Click()
On Error Resume Next
For s = 1 To 25
UserForm1.Controls("textbox" & s) = ""
Next
For s = 1 To 25
UserForm1.Controls("COMBOBOX" & s) = ""
Next
UserForm1.TextBox102.Value = ListBox1.ListIndex + 4
UserForm1.TextBox4.Value = Format(Date, "dd.mm.yyyy")

[COLOR="Blue"]UserForm1.ComboBox2.Text = Sheets("ANA TABLO").Range("a" & ListBox1.ListIndex + 4)
UserForm1.ComboBox4.Text = Sheets("ANA TABLO").Range("b" & ListBox1.ListIndex + 4)
UserForm1.ComboBox3.Value = Sheets("ANA TABLO").Range("C" & ListBox1.ListIndex + 4)
UserForm1.TextBox2.Text = Sheets("ANA TABLO").Range("D" & ListBox1.ListIndex + 4)
UserForm1.ComboBox1.Text = Sheets("ANA TABLO").Range("E" & ListBox1.ListIndex + 4)
UserForm1.ComboBox5.Text = Sheets("ANA TABLO").Range("G" & ListBox1.ListIndex + 4)
UserForm1.TextBox4.Text = Sheets("ANA TABLO").Range("F" & ListBox1.ListIndex + 4)[/COLOR]
[COLOR="Red"]If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 5) = "ADANA") Then
UserForm1.TextBox11.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 5)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 6) = "ANKARA") Then
UserForm1.TextBox12.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 6)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 7) = "ANTALYA") Then
UserForm1.TextBox13.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 7)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 8) = "BURSA") Then
UserForm1.TextBox15.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 8)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 9) = "DIYARBAKIR") Then
UserForm1.TextBox16.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 9)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 10) = "IST 1") Then
UserForm1.TextBox14.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 10)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 11) = "IST 2") Then
UserForm1.TextBox17.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 11)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 12) = "IZMIR") Then
UserForm1.TextBox18.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 12)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 13) = "KADIKOY") Then
UserForm1.TextBox19.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 13)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 14) = "MARMARA") Then
UserForm1.TextBox20.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 14)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 15) = "TRABZON") Then
UserForm1.TextBox21.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 15)
End If
If (Sheets("ANA TABLO").Range("H" & ListBox1.ListIndex + 16) = "H.GRUBU") Then
UserForm1.TextBox22.Text = Sheets("ANA TABLO").Range("I" & ListBox1.ListIndex + 16)
End If[/COLOR]


mavi ile işaretlediklerimi userform'da gerekli yerlere sıkıntısız bir şekilde atabiliyorum,fakat kırımızı ile isaretliler bir alt satıra atmam gerektigi için ve her zaman her satır da dolu olmadıgı için satır numarasında sıkıntı cıkıyor. esasında sizin yaptıgınız kodda aynı sıkıntı var.

toplamda en fazla 21 tane alt satır olabiliyor fakat bazen 10 da olabilir 5 de olabilir, 21 tane oldugu zaman sıkıntı olmuyor ama 21 de az oldugu zaman ve sırasız oldugu zaman maalesef düzgün calısmıyor listbox click olayı. umarım anlatabilmişimdir.[/QUOTE]
 
bu konuda yardımcı olabilicek bir arkadaş varmıdır acaba :(
 
arkadaşlar bu şekilde olmayacak mıdır? başka bir şekilde mi yapmam gerekiyor.
 
Geri
Üst