VBA Kodlarının Anlamını Yazma

  • Konuyu başlatan Konuyu başlatan YAMAHATO
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Kısa Açıklama

VBA Kodlarının Anlamını Yazma isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(44 satır)

MERHABA

Yukarıda ki kodu daha önce ki bir excel çalışmamdan aldım ve yeni çalışmama uyarladım.
Textbok2'e iki görev atadım
1. görev = Değer girdikçe, girilen değerlerle eşleşen, kayıtlı değerleri listbox2 de gösteriyor.
2. görev= Girilen değer kaydet butonuna basınca excel sayfasında ona tanımladığım hücreye yazılıyor.

ŞİMDİ SORUN ŞU

Textbox2 girdiğim değer kayıtlarda varsa Listbox 2 de gözüküyor, Listbox2'deki değere tıkladığımda yazdığım kod ile
belirlediğim değerleri 2-3-4-5 textboklara atması lazım.

Fakat söyle bir sorun var. Listbox2 değere tıklayınca kod belirlediğim değerleri 3-4-5 atıyor ama Textbox2'e atmıyor.
TEXTBOX 2 de arama için yazdığım kelimeler bile siliniyor. Bomboş kalıyor. Bomboş kaldığı içinde listbox2 bir ton sonuç çıkıyor

Kodu değiştirip textbox2 yazan yeri değiştirip aşağıda ki gibi başka bir textbok numarası yazınca tüm kod çatır çatır çalışıyor.
If IsNull(ListBox2.Value) = True Then TextBox6.Text = "": Exit Sub '<-------------------

ÇOK UZATTIM ÖZÜR DİLERİM, SORUM ŞU.

If IsNull(ListBox2.Value) = True Then TextBox2.Text = "": Exit Sub '<-------------------
Kodun tam olarak ne yapmaya çalışıyor. Bu kodun anlamı ne . ne olursa ne olacak. textbox2 yazınca çalışmayan kod, textbox numarasını değiştirince neden çalışıyor? Bana basitçe anlatabilir misiniz?
 
Merhaba,

Sorduğunuz kısımda, şu satır önemli:

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Bu kod şu anlama geliyor:
  • IsNull(ListBox2.Value): ListBox2'de seçilen bir değer olup olmadığını kontrol eder. Eğer ListBox2.Value null (boş) ise, bu, kullanıcı ListBox2'de bir değer seçmemiş demektir.
  • Eğer ListBox2.Value null ise, TextBox2.Text alanına boş bir değer atar (TextBox2.Text = ""), yani TextBox2'yi temizler.
  • Sonrasında Exit Sub ile bu alt prosedürü (sub) sonlandırır. Bu, daha fazla işlem yapılmaması gerektiğini belirtir.

Neden TextBox2'yi temizliyor?​

Bu kod, eğer ListBox2'de bir değer yoksa (yani null ise), TextBox2'nin temizlenmesini sağlar. Ancak, ListBox2'de bir değer seçildiğinde de bu satır çalışıyorsa, TextBox2 temizlenmiş oluyor.

Neden başka bir TextBox numarasıyla çalışıyor?​

Başka bir TextBox numarası kullandığınızda, bu problem ortadan kalkıyor çünkü TextBox2 arama kutusu olarak kullanıldığından, kod bu kutuyu temizlediğinde arama yapmaya devam edemiyorsunuz. Eğer TextBox2’yi temizlemek yerine başka bir TextBox'u temizlerseniz, arama kutunuz korunur ve listeleme işlemi düzgün çalışmaya devam eder.

Çözüm:​

TextBox2'nin temizlenmesini istemiyorsanız, şu kodu gözden geçirmeniz gerekebilir:

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)
Bu, TextBox2'yi temizlemeden ListBox2'de bir değer olup olmadığını kontrol edecektir.

Umarım anlaşılır olmuştur.
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst