• DİKKAT

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

Listboxa veri çekmek için yardımcı olurmusunuz

Katılım
11 Mart 2018
Mesajlar
31
Excel Vers. ve Dili
2010
düzenlediğim textboxlarla excel hücrelerine kaydettiğim verileri listboxa sütun başlıklarıyla beraber çekmek istiyorum
A sütunundan başlıyor N sütununa kadar 14 sütun ve o sütunlara satır satır girdiğim bilgileri listboxa çekmek istiyorum yine sutunlara göre tüm verileri sıralı şekilde çekmek istiyorum ve listbox içerisinde değişiklik yapıp geri excele aktarmak istiyorum yardımcı olurmusunuz.
 
Merhaba.

Birkaç basit cümle ile istediğiniz şeylerin karşılığı çok fazla emek isteyen bir iş ve ayrıca forumda sıkça sorulan sorulara da benziyor.
Bu şekilde destek isteyerek sonuca ulaşmanız güç.

Öncelikle, forum sayfalarının ÜST-ORTA kısmında bulunan ARAMA alanını kullanarak arama yapmanızı, ardından da isteğinize benzer bir konu bulduğunuzda,
gerçek belgenizin küçük bir kopyası şeklinde hazırlayacağınız bir örnek belge yükleyerek onun üzerinden destek istemenizde yarar var.

Örnek belge içermeyen bu tür sorulara cevap yazılsa bile nihai sonuca ulaşmak imkansız gibi.

Örnek belge özellikleri ve örnek belge yükleme yöntemine ilişkin kısa açıklama cevabımın altındaki İMZA bölümünde var.
.
 
çok teşekkür ederim birde böyle bakabilirmisiniz duvar formunda listbox var ben oraya veri çekip güncelleyip geri excele aktarmak istiyorum.Yani textboxlarla excele veri girip o girdiğim verilerin listboxa çekilmesini ve güncelleyip geri excele aktarmak istiyorum.

http://s7.dosya.tc/server3/hhhhfd/yuk.rar.html
 
Özelden gönderdiğiniz dosya ile burada eklediğiniz sanırım aynı. Dosya tam bir iş döngüsü için düşünülmüş ve bir yere kadar da gelmiş. Listboxu kontrol ettim , kaydet özelliği çalışıyor,sanırım istediğiniz (diyelim) altalta 10 veri satırı var ve buradan birini text+comboboxlara getirip değişiklik yapıp aynı satıra kaydetmek gibi ( bul sil değiştir kaydet ) özelliği eklemek.

Bunun için o satırın bir benzersiz değişkeni olması gerek. Yani kaydet esnasında o satırı tanımlayacak bir salkımbaşı yapmak gerek ki genelde sıra no bu işlevi görür, o salkımbaşından tutup geri boxlara atabilelim.

Formunuzda en solda adet ile başlayan , halihazırda sağa doğru birbirine bağlanmış text+combolar var. Bunlardan biri benzersiz değişken olabilir mi ya da en sola sıra no için bir textbox konması yeterli mi ?

Dosyanız ciddi şekilde yarıyolda ve yapısını zorunlu olmadığı sürece bozmadan devam etmek gerek, yoksa kodlar anlamında inşaatın bir kısmını yık yap olabilir. Kısa gezintide dosyanızı anlamaya çalışsam da tam bağlantıları çözdüğümü söyleyemem ama bu haliyle bile sizi tebrik etmek gerek, işi excele aktarmışsınız.

Sorun;biz o işi siz gibi bilmiyoruz,dolayısı ile tanımakta sizin ifadeleriniz yolgösteren olacak

Diğer konu ; listbox halihazırda çalışıyor ama zemin rengini de font rengini de beyaz yapmış olduğunuzdan görünmüyor. Zeminin rengini değiştirip fontu da siyah seçtiğinizde satır görünüyor
 

Ekli dosyalar

  • 2 satır .jpg
    2 satır .jpg
    170.9 KB · Görüntüleme: 10
Son düzenleme:
ilginiz için teşekkür ederim ama şuan listbox istediğim gibi veri çekmiyor ve sizin dediğiniz bul ve değiştir işlemini farklı textboxlara çekip ordan düzenleyip değiştirme şansımız olabilirmi kod bilgisi olarak eksik olduğum için istediğim şeyleri yapamıyorum amacım textboxlarla excele veri kaydedip onu listboxa çekmek ve listboxta gerekli değişikliği yapmak güncellemek bu değişiklikler alt sırada farklı textboxlarla olabiir eklediğim textboxlarda olmasına gerek olmayabilir kod için yardımcı olabilirmisiniz tekrardan teşekkürler.
 
Adım adım gidersek ve dosya ekleme ile sitede aynı dosya trafiği ile yük yapmak yerine:

1-Listbox üzerinde çift tıklayın , bu listbox_click olayı açar. Üstte sağda double_click olayını bulun seçin, bu listbox.double_click olayı için ikinci bir kod sahası açar.

2-Açılan yere şu kodları yapıştırın :

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    With ListBox1
        If .ListIndex > -1 Then
            TextBox1.Value = .List(.ListIndex, 0) 'Column 1
            TextBox2.Value = .List(.ListIndex, 1) 'Column 2
            ComboBox1.Value = .List(.ListIndex, 2) 'Column 3
            ComboBox2.Value = .List(.ListIndex, 3) 'Column 4
            TextBox3.Value = .List(.ListIndex, 4) 'Column 5
            TextBox4.Value = .List(.ListIndex, 5) 'Column 6
            TextBox5.Value = .List(.ListIndex, 6) 'Column 7
            TextBox6.Value = .List(.ListIndex, 7) 'Column 8
            TextBox7.Value = .List(.ListIndex, 8) 'Column 9
            TextBox8.Value = .List(.ListIndex, 9) 'Column 10
            TextBox9.Value = .List(.ListIndex, 10) 'Column 11
            TextBox10.Value = .List(.ListIndex, 11) 'Column 12
        End If
    End With
End Sub

3- Dosyayı save edip listboxu çalıştırın ve (yazılmış) bir satıra çift tıklayın. Tıkladığınız satırın içeriği üstteki boxlara gelecektir.

Burada sağda boş kutular kalıyor. Bunun nedeni EKLE kodlarınızda bunlar için komut satırı olmaması ve neden olmadığını anlamak gerek, bilerek mi unutularak mı onu açığa çıkarmak gerek.
 
alternatif.:cool:
Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    With ListBox1
        If . > -1 Then
            TextBox1.Value = .Column(0)  'Column 1
            TextBox2.Value = .Column(1)  'Column 2
            ComboBox1.Value = .Column(2)  'Column 3
            ComboBox2.Value = .Column(3)  'Column 4
            TextBox3.Value = .Column(4)  'Column 5
            TextBox4.Value = .Column(5)  'Column 6
            TextBox5.Value = .Column(6)  'Column 7
            TextBox6.Value = .Column(7)  'Column 8
            TextBox7.Value = .Column(8)  'Column 9
            TextBox8.Value = .Column(9)  'Column 10
            TextBox9.Value = .Column(10)  'Column 11
            TextBox10.Value = .Column(11)  'Column 12
        End If
    End With
End Sub
 
çok teşekkür ederim ama bundan önce ben şuan excele girdiğim veriyi listboxa çekemiyorum olmuyor koddamı bir yanlışlık var acaba
 
Sayfaya 15-20 satır veri giriniz.Denemek için.Tekrar yükleyin:cool:
 
Listboxta çift tıkladığınızda kayıt boxlara geldi , buraya kadar tamamsa kayıtta değişiklik için:

1-Userforma yeni bir tuş ekleyin , bende commandbutton6 geldi.
2-Butona çift tıklayın ve gelen kod sahasına şu kodları yapıştırın :
Kod:
sat = ListBox1.ListIndex + 5
Cevap = MsgBox("DEĞİŞTİRMEK İSTEDİĞİNİZDEN EMİNMİSİNİZ!", vbYesNo, "")
If Cevap = vbNo Then Exit Sub
Sheets("DUVAR YÜKLERİ").Select
ListBox1.RowSource = ""
Cells(sat, "A") = TextBox1.Value
Cells(sat, "B") = TextBox2.Value
Cells(sat, "c") = ComboBox1.Value
Cells(sat, "d") = ComboBox2.Value
Cells(sat, "e") = TextBox3.Value
Cells(sat, "f") = TextBox4.Value
Cells(sat, "g") = TextBox5.Value
Cells(sat, "h") = TextBox6.Value
Cells(sat, "i") = TextBox7.Value
Cells(sat, "j") = TextBox8.Value
Cells(sat, "k") = TextBox9.Value
Cells(sat, "l") = TextBox10.Value

MsgBox " Kayıt değiştirildi, form boşaltılıyor"

Dim nesne As Control
For Each nesne In Me.Controls
    If TypeName(nesne) = "TextBox" Or TypeName(nesne) = "ComboBox" Then
        nesne.Value = ""
    End If
Next
ThisWorkbook.Save
UserForm_Initialize

Çift tıklayarak boxlara gelen veri üzerinde değişiklik yapıp tuşa bastığınızda veri yeni hali ile kendi satırına kaydedilecek ve form boşaltılacaktır.

Hala benzersiz değişken gerekli zira, bu satırların 100 tane olduğunu düşünürseniz doğru satırı bulmak için gözle uzun bir tarama gerekir. Benzersiz değişken olduğunda bunu süzgeçlerle bulmak ve bu formda direk o değişkenle aratmak daha emin ve basit yol olabilir.


Üstad Orion1 in cevabını görünce ödüm patladı , yanlış soruya mı cevap verdim diye :)
 
şimdide ekle butonu çalışmıyor textboxlardan excele aktarmada hata veriyor ben tasarımını düşüncesini yaptım ama kod kısmında çuvalladım
 
şuan ekle butonundada hata verdi tasarmını filan yaptım ama kod kısmında çok eksiğim var hata neden oluyo bulamıyorum az önce ekliyordu şimdi eklemiyor
 
No panic :

Benim açıkladığım kodlarla ve karışmasın diye adını biraz değiştirdiğim dosyanız:

http://www.filebig.net/files/yEdBeQt7H8

Sn Orion1'in önerdiği kodlar daha sağlıklı çalışabilir.

Ekle butonu kodlarınızın sonuna end sub dan önce " userform_initialize " satırı ekleyin. Kaydediyor ama form yenilenmediğinden göremeyebiliyorsunuz.
 
amacım textboxlarla excele veri kaydedip onu listboxa çekmek ve listboxta gerekli değişikliği yapmak güncellemek bu değişiklikler alt sırada farklı textboxlarla olabiir eklediğim textboxlarda olmasına gerek olmayabilir kod için yardımcı olabilirmisiniz tekrardan teşekkürler.

Bildiğim kadarı ile listbox pasif bir nesne ve yaptığı ayna işi sadece. Üzerinde direkt bir uygulama yapılamıyor , boxlara çekip işlem yaparak tekrar sayfaya gönderme ve listboxa " bir daha " okutmak mümkün. Böyle bir yol olsa da inanılmaz kod yığını gerekebilir ve en ufak hatada iflasa götürebilir. Harcanacak zamana değmeyebilir.
 
çok teşekkür ederim emeğinize ilginize sizden birşey daha isteyebilirmiyim acaba arama butonu ekleme şansım olurmu farklı textboxlar oluşturarak olabilir bu.
 
Son düzenleme:
6 adet olabilir mesela adet kat açıklama cinsi aks ve duvar no bunlara göre istediğimiz birine yazdığımızda onunla ilgili olanları dökebilirmi listboxa ve bu listbox içerisinde seçtiğim satırı hem listboxtan hemde excelden silebilme şansım varmı , birde şey sorucam textboxlar boşken güncelle tıkladığımız zaman exceldeki başlıkları siliyor otomatik olarak , sağolun ilginiz için.
 
Son düzenleme:
Merhaba.

Bu konu sayfasındaki dosyayı, kodları çok incelemiş değilim ama Sayın cems'e birkaç şey sormak istiyorum.
(destek verdiği ve kendi açtığı konularda kullanılan userform kodlarında, genel bir alışkanlık veya kestirme yol diye düşünüyor olabilir)

Sayfaya veri gönderen işlemlerden sonra Userfomda güncellenmesi gereken tek nesne ListBox olmasına rağmen,
neden sadece Listbox.RowSource tanımlamasını değiştirmek yerine UserForm_Initalize kodlarını çağırıyor acaba?

Bu konu sayfasındaki belgede UserForm_Initalize kodları çok yoğun değil ama, olabilir de netice olarak.

Sayın cems, ayrıca bu kod'un hemen ardından yine genel bir alışkanlık olarak ThisWorkbook.Save kod satırı kullanıyor.
Bunun bir amacı mı vardır acaba? Öngörülemeyen bir nedenle Excel çalışmayı durdurursa
veri kaybetmeyeyim düşüncesine dayanarak mı bu satırı kullanıyorsunuz?
 
Listboxu biraz aşağı çekin ve yeni 6 tane textbox ekleyin, daha sonra bunların her birine aşağıdaki kodları örnekleyin:

Kod:
Private Sub TextBox11_Change()
On Error Resume Next
METİN1 = TextBox11.Value
Set FC2 = Range("A5:A65536").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=2, Criteria1:="*" & TextBox11.Value & "*"
If METİN1 = "" Then
Selection.AutoFilter Field:=1
End If
End Sub

bu textboxtaki metne göre sütunun süzülmesi lazım.
 
Geri
Üst