Çözüldü UserFormda TextBoxdan Hücreye Veri Aktarma

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

bilisim2010

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
merhaba userformda combobox ile buldugum ve textboxda gösterdiğim verileri textboxda değiştirdiğimde stok adı karşılığına göre hücredeki yerine gitmesini istiyorum bu konuda birçok bilgi var ama çok karışık olduğu için anlamadım lütfen bilen biri bana yardımcı olsun teşekkürler..




1665295567424.webp


Option Explicit
Private Sub CommandButton1_Click()

Dim pr As Worksheet
Set pr = Sheets("SARCOOL FİYAT LİSTESİ")

Dim x As Long
x = pr.Range("A100000").End(xlUp).Row
Dim aranan As String
Dim tablo As Range
Set tablo = pr.Range("A:BB")

aranan = ComboBox1.Text

TextBox2.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 34)
TextBox3.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 35)
TextBox4.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 36)
TextBox5.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 38)
TextBox6.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 40)
TextBox7.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 42)
TextBox8.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 44)
TextBox9.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 3)
TextBox10.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 6)
TextBox11.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 28)
TextBox12.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 32)
TextBox13.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 29)
TextBox14.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 21)
TextBox15.Value = tablo.Find(aranan, , , xlWhole).Offset(0, 37)



Set pr = Nothing
Set tablo = Nothing

ComboBox1.SelStart = 1
ComboBox1.SetFocus


End Sub
 
Son düzenleme:
Çözüm
Textboxlara verileri getirdikten sonra, textbox üzerinreki verileri güncelleyip tekrar hücrelere yazdırırken tekrar aramanıza gerek yok.
Düzenleme yaptığınız Stok Kodu aynı olduğu için bulunduğu satır da aynı. Yani işleme aldığınız satırı hafızada tutup bu satırdaki verilerin üzerine yazdırılması daha pratik olur.
Dosyanızın boyutunu gereksiz sayfaları silerek veya 100bin satır varsa bunu 10 satıra bırakıp geri kalan satırları silerek boyutunu küçültebilirsiniz.
Combobox değerini hangi sütunda arıyorsunuz? Aranan sütun sabit değilse offset özelliğini kullanmanızın bi anlamı kalmaz.
Mesela aranan değer a sütunundaysa, değer bulunduğunda bu hücrenin offset(0,1) yaparsanız bu B sütununu ifade eder ve textboxa B sütunundaki karşılığını getirir.
Fakat siz aradığınız değer farklı bir sütunda bulunursa bunun offset(0,1) değeri B sütunu yerine farklı bir sütun değerini textboxa yazar.
Dosyanızı yüklerseniz bi bakalım.
 
Combobox değerini hangi sütunda arıyorsunuz? Aranan sütun sabit değilse offset özelliğini kullanmanızın bi anlamı kalmaz.
Mesela aranan değer a sütunundaysa, değer bulunduğunda bu hücrenin offset(0,1) yaparsanız bu B sütununu ifade eder ve textboxa B sütunundaki karşılığını getirir.
Fakat siz aradığınız değer farklı bir sütunda bulunursa bunun offset(0,1) değeri B sütunu yerine farklı bir sütun değerini textboxa yazar.
Dosyanızı yüklerseniz bi bakalım.
Selamlar ben textboxa yazdırıyorum zaten onda sorun yok ben texboxtan geri hücreye yazdıramıyorum dosya biraz büyük Google drive linkini versem olur mu
Combobox değerini hangi sütunda arıyorsunuz? Aranan sütun sabit değilse offset özelliğini kullanmanızın bi anlamı kalmaz.
Mesela aranan değer a sütunundaysa, değer bulunduğunda bu hücrenin offset(0,1) yaparsanız bu B sütununu ifade eder ve textboxa B sütunundaki karşılığını getirir.
Fakat siz aradığınız değer farklı bir sütunda bulunursa bunun offset(0,1) değeri B sütunu yerine farklı bir sütun değerini textboxa yazar.
Dosyanızı yüklerseniz bi bakalım.
Combobox değerini hangi sütunda arıyorsunuz? Aranan sütun sabit değilse offset özelliğini kullanmanızın bi anlamı kalmaz.
Mesela aranan değer a sütunundaysa, değer bulunduğunda bu hücrenin offset(0,1) yaparsanız bu B sütununu ifade eder ve textboxa B sütunundaki karşılığını getirir.
Fakat siz aradığınız değer farklı bir sütunda bulunursa bunun offset(0,1) değeri B sütunu yerine farklı bir sütun değerini textboxa yazar.
Dosyanızı yüklerseniz bi bakalım.
 
Sorunuzu, örnek belge üzerinden sormamakta kararlısınız anlaşılan.
Tabi örnek belge özellikleri konusundaki açıklamaları daha evvel yapmıştım.
20 MB örnek belge olmaz.

Bu durumda cevap vermeyi düşünecek kişiden;
-- 15 kadar Textbox, 1 adet CommandButton, 1 adet Combobox nesnesinin olduğu bir userform hazırlamasını,
-- hücre adreslerini takip ederek bu hücrelere elle veri girişi yapmasını,
-- verdiğiniz kodu kullanarak hücrelerden textbox nesnelerine veri akışının tamam olduğundan emin olduktan sonra,
-- asıl isteğiniz olan TextBox nesnelerinden hücrelere veri akışına dair kodlama yapmasını.
-- mevcut kodunuz ile eklenen kodun doğru işlem yaptığından emin olduktan sonra da cevap yazmasını
istemiş oluyorsunuz.

Ayrıca; mevcut kodda her ne kadar arama alanı A:BB sütun aralığıymış gibi görünse de,
mevcut koda göre; arama alanında mükerrer kayıt olmadığını (çünkü mevcut kod ilk bulunan değere göre işlem yapıyor gibi görünüyor), Offset kısımlarında sütun numaraları da belli olduğuna göre arama aslında belli ve TEK bir sütunda yapılıyor gibi anlaşılıyor.

Yine mevcut koda göre aranan şey Combobox'taki değer olduğuna göre CommandButton kullanmaya gerek olmadığını,
arama kodlarının Combobox_Change olayı içerisinde olmasının yerinde olacağını değerlendiriyorum.
UserForm_Initalize kod blokunda Combobox'a verilerin nasıl alındığı da belli değil.
Aslında, madem arama combobox değerine göre yapılacak ve aranan değer arama sütununda mükerrer değil tekil durumda,
şayet Combobox'a alınan veriler zaten arama alanındaki verilerse, FIND koduna da gerek olmadan Combobox'un ListIndex değeri üzerinden aranan şeyin satır numarası kolaylıkla tespit edilebilir ve bunun üzerinden de Textboxlara alınacak değerlere ilişkin kodlar buna göre düzenlenebilir.

Şayet Combobox/sayfada ilgili sütundaki veriler ilişkisi yukarıdaki gibi bir yapıdaysa;
tersi, yani TextBox'tan sayfaya aktarma işleminde de Combobox'un bu ListIndex değerinden hareket edilebilir anlamına geliyor.
Arama için değilse de sayfaya aktarma için bir CommandButton kullanmak gerekir diye düşünüyorum.

Mevcut duruma göre belirttiğim hususların netleşmesi bakımından örnek belgenizi eklemeniz gerektiğini bir kez daha hatırlatayım.

Bir de şöyle düşünün; diyelim bir arkadaşımız bir kodlama yaptı,
cevap olarak kod metni yerine kod metninin ekran görüntüsünü gönderse nasıl düşünürsünüz?
 
Textboxlara verileri getirdikten sonra, textbox üzerinreki verileri güncelleyip tekrar hücrelere yazdırırken tekrar aramanıza gerek yok.
Düzenleme yaptığınız Stok Kodu aynı olduğu için bulunduğu satır da aynı. Yani işleme aldığınız satırı hafızada tutup bu satırdaki verilerin üzerine yazdırılması daha pratik olur.
Dosyanızın boyutunu gereksiz sayfaları silerek veya 100bin satır varsa bunu 10 satıra bırakıp geri kalan satırları silerek boyutunu küçültebilirsiniz.
 
Çözüm
Sorunuzu, örnek belge üzerinden sormamakta kararlısınız anlaşılan.
Tabi örnek belge özellikleri konusundaki açıklamaları daha evvel yapmıştım.
20 MB örnek belge olmaz.

Bu durumda cevap vermeyi düşünecek kişiden;
-- 15 kadar Textbox, 1 adet CommandButton, 1 adet Combobox nesnesinin olduğu bir userform hazırlamasını,
-- hücre adreslerini takip ederek bu hücrelere elle veri girişi yapmasını,
-- verdiğiniz kodu kullanarak hücrelerden textbox nesnelerine veri akışının tamam olduğundan emin olduktan sonra,
-- asıl isteğiniz olan TextBox nesnelerinden hücrelere veri akışına dair kodlama yapmasını.
-- mevcut kodunuz ile eklenen kodun doğru işlem yaptığından emin olduktan sonra da cevap yazmasını
istemiş oluyorsunuz.

Ayrıca; mevcut kodda her ne kadar arama alanı A:BB sütun aralığıymış gibi görünse de,
mevcut koda göre; arama alanında mükerrer kayıt olmadığını (çünkü mevcut kod ilk bulunan değere göre işlem yapıyor gibi görünüyor), Offset kısımlarında sütun numaraları da belli olduğuna göre arama aslında belli ve TEK bir sütunda yapılıyor gibi anlaşılıyor.

Yine mevcut koda göre aranan şey Combobox'taki değer olduğuna göre CommandButton kullanmaya gerek olmadığını,
arama kodlarının Combobox_Change olayı içerisinde olmasının yerinde olacağını değerlendiriyorum.
UserForm_Initalize kod blokunda Combobox'a verilerin nasıl alındığı da belli değil.
Aslında, madem arama combobox değerine göre yapılacak ve aranan değer arama sütununda mükerrer değil tekil durumda,
şayet Combobox'a alınan veriler zaten arama alanındaki verilerse, FIND koduna da gerek olmadan Combobox'un ListIndex değeri üzerinden aranan şeyin satır numarası kolaylıkla tespit edilebilir ve bunun üzerinden de Textboxlara alınacak değerlere ilişkin kodlar buna göre düzenlenebilir.

Şayet Combobox/sayfada ilgili sütundaki veriler ilişkisi yukarıdaki gibi bir yapıdaysa;
tersi, yani TextBox'tan sayfaya aktarma işleminde de Combobox'un bu ListIndex değerinden hareket edilebilir anlamına geliyor.
Arama için değilse de sayfaya aktarma için bir CommandButton kullanmak gerekir diye düşünüyorum.

Mevcut duruma göre belirttiğim hususların netleşmesi bakımından örnek belgenizi eklemeniz gerektiğini bir kez daha hatırlatayım.

Bir de şöyle düşünün; diyelim bir arkadaşımız bir kodlama yaptı,
cevap olarak kod metni yerine kod metninin ekran görüntüsünü gönderse nasıl düşünürsünüz?
Valla Ömer bey işin aslı ben soruyu sorduğumda
Sorunuzu, örnek belge üzerinden sormamakta kararlısınız anlaşılan.
Tabi örnek belge özellikleri konusundaki açıklamaları daha evvel yapmıştım.
20 MB örnek belge olmaz.

Bu durumda cevap vermeyi düşünecek kişiden;
-- 15 kadar Textbox, 1 adet CommandButton, 1 adet Combobox nesnesinin olduğu bir userform hazırlamasını,
-- hücre adreslerini takip ederek bu hücrelere elle veri girişi yapmasını,
-- verdiğiniz kodu kullanarak hücrelerden textbox nesnelerine veri akışının tamam olduğundan emin olduktan sonra,
-- asıl isteğiniz olan TextBox nesnelerinden hücrelere veri akışına dair kodlama yapmasını.
-- mevcut kodunuz ile eklenen kodun doğru işlem yaptığından emin olduktan sonra da cevap yazmasını
istemiş oluyorsunuz.

Ayrıca; mevcut kodda her ne kadar arama alanı A:BB sütun aralığıymış gibi görünse de,
mevcut koda göre; arama alanında mükerrer kayıt olmadığını (çünkü mevcut kod ilk bulunan değere göre işlem yapıyor gibi görünüyor), Offset kısımlarında sütun numaraları da belli olduğuna göre arama aslında belli ve TEK bir sütunda yapılıyor gibi anlaşılıyor.

Yine mevcut koda göre aranan şey Combobox'taki değer olduğuna göre CommandButton kullanmaya gerek olmadığını,
arama kodlarının Combobox_Change olayı içerisinde olmasının yerinde olacağını değerlendiriyorum.
UserForm_Initalize kod blokunda Combobox'a verilerin nasıl alındığı da belli değil.
Aslında, madem arama combobox değerine göre yapılacak ve aranan değer arama sütununda mükerrer değil tekil durumda,
şayet Combobox'a alınan veriler zaten arama alanındaki verilerse, FIND koduna da gerek olmadan Combobox'un ListIndex değeri üzerinden aranan şeyin satır numarası kolaylıkla tespit edilebilir ve bunun üzerinden de Textboxlara alınacak değerlere ilişkin kodlar buna göre düzenlenebilir.

Şayet Combobox/sayfada ilgili sütundaki veriler ilişkisi yukarıdaki gibi bir yapıdaysa;
tersi, yani TextBox'tan sayfaya aktarma işleminde de Combobox'un bu ListIndex değerinden hareket edilebilir anlamına geliyor.
Arama için değilse de sayfaya aktarma için bir CommandButton kullanmak gerekir diye düşünüyorum.

Mevcut duruma göre belirttiğim hususların netleşmesi bakımından örnek belgenizi eklemeniz gerektiğini bir kez daha hatırlatayım.

Bir de şöyle düşünün; diyelim bir arkadaşımız bir kodlama yaptı,
cevap olarak kod metni yerine kod metninin ekran görüntüsünü gönderse nasıl düşünürsünüz?
O problemi ben çözdüm bu konuyu kapatın lütfen ayrıca bu sitede yeniyim kurallarınızı istişarelerinizi anlamaya çalışıyorum duruma göre bende sorularımı ve örnek belgelerimi hazırlayacağım
 
Textboxlara verileri getirdikten sonra, textbox üzerinreki verileri güncelleyip tekrar hücrelere yazdırırken tekrar aramanıza gerek yok.
Düzenleme yaptığınız Stok Kodu aynı olduğu için bulunduğu satır da aynı. Yani işleme aldığınız satırı hafızada tutup bu satırdaki verilerin üzerine yazdırılması daha pratik olur.
Dosyanızın boyutunu gereksiz sayfaları silerek veya 100bin satır varsa bunu 10 satıra bırakıp geri kalan satırları silerek boyutunu küçültebilirsiniz.
yok hocam stok kodu değişiyor daha doğrusu bu yaptıgım işime yaramadı ben başka bi kod yazdım şimdi comboboxdan çağırıyorum textboxa geliyo textboxdan veriyi değişiyorum buton ile güncelle diyorum excelde 1. satırı güncelliyor 2. stoğu seçiyorum verileri çağırıyor textboxa değişiyorum güncelle diyorum sorunum tam olarak bu götürüp yine 1. satıra yazıyor halbuki bir alt satırdaki hücreye yazması gerek kodum bu b bakarmısınız okutkan hocam

Sub evn_click()

Dim s1 As Worksheet, sat As Long
Set s1 = Sheets("ELAZIĞ MERKEZ CARİLER")
sat = s1.Cells(Rows.Count, "B").End(xlUp).Row + 1
s1.Cells(sat, "B").Value = ComboBox1.Value

With sh_elazigm

.Cells(2, 17) = tb_kosuladi.Text
.Cells(2, 16) = tb_kosulorani.Text
.Cells(2, 18) = tb_iskonto.Text
.Cells(2, 19) = tb_gün.Text
.Cells(2, 20) = tb_yil.Text
.Cells(2, 12) = tb_aldigimal.Text
.Cells(2, 14) = tb_yilbazligunluk.Text
.Cells(2, 15) = tb_gunbazliyillik.Text


End With
MsgBox "İşlem Başarılı.", vbInformation

End Sub
 
Textboxlara verileri getirdikten sonra, textbox üzerinreki verileri güncelleyip tekrar hücrelere yazdırırken tekrar aramanıza gerek yok.
Düzenleme yaptığınız Stok Kodu aynı olduğu için bulunduğu satır da aynı. Yani işleme aldığınız satırı hafızada tutup bu satırdaki verilerin üzerine yazdırılması daha pratik olur.
Dosyanızın boyutunu gereksiz sayfaları silerek veya 100bin satır varsa bunu 10 satıra bırakıp geri kalan satırları silerek boyutunu küçültebilirsiniz.

OKUTKAN HOCAM BUNA BİR BAKARMISINIZ
 

Ekli dosyalar

  • Adsız.webp
    Adsız.webp
    78.1 KB · Görüntüleme: 20
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konum
elazig
Konu Bilgi
Durum
Çözüldü 
Forum
Excel Makro Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
9
Üst