Seçime Göre Veri Atama

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,720
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

"B2" açılır hücreden SÜTUN seçiyorum,

"M" sütunundaki ListBox1' den Yemek adını tıklıyorum,

Tıklanan Yemek adı TextBox1 'de görünüyor ve "B2" den seçilen sütunda, son dolu hücreden sonraki ilk boş hücreye (örnekte C25) alınıyor.

ListBox1 'e veri, Ad Tanımlamada olan "ListeY" ile alınıyor,

"AYLIK_YEMEK_LİSTESİ" sayfasındaki kod ile gerçekleşen bu işlem, bilemediğim bir nedenden dolayı hatalı çalışıyor.

HATA ; Seçilen yemek, ilgili hücreye 1 kez alınması gerekirken, birden fazla alınıyor, silmeye kalksam bile otomatikman tekrar aynı hücrelere mükerrer olarak geliyor.

Bu hatanın giderilmesini rica ediyorum,

Yada, ListBox1 'den seçilen yemek, TextBox1 'i by-pass ederek direkt "B2" den seçilen sütunun, son dolu hücreden sonraki ilk boş hücresine (örnekte C25) gelmesini arzu ediyorum,

Teşekkür ederim.
 

Ekli dosyalar

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,720
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Konu ile ilgili çözüm arayışım devam etmektedir,

Teşekkür ederim.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Sayfaya eklenen nesneler üzerinde çalışırken sayfadaki hareketler ve nesneler bir birini tetikledikleri için bu tür sorunlarla karşılaşmanız normal. Bir tarafı düzelteyim derken başka bir sorun çıkar. Bunun yerine neden userform kullanmadınız.

Eğer bu şekilde kullanacaksanız, Private Sub ListBox1_Click() yerine;

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Kullanın. Tek tıklama yerine çift tıklama ile işlemleri yaparsanız en azında tetikleme sorunu yaşamazsınız.

Ayırca tıklanan değeri bulmak için X tanımındaki aramaya gerek yoktur. Aşağıdaki gibi kullanabilirsiniz.
Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error Resume Next
    Dim Sutun As String
    Sutun = Range("B2").Value
    TextBox1 = ListBox1.Value
    Cells(Rows.Count, Sutun).End(3).Rows.Offset(1, 0) = TextBox1
    ListBox1.Visible = True
End Sub
Son olarak;
Private Sub TextBox1_Change() kodlarını neden kullandığınızı anlayamadım.

.
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,720
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Sayın Ömer merhaba,

Cevabınıza geç dönüşüm için özür dilerim,

Acil dışarı çıkınca, laptop açık kaldı, sitede online görülüyor olabilirim, açıklamak istedim.

"Private Sub TextBox1_Change() kodlarını neden kullandığınızı anlayamadım. " sorunuza bir cevap olarak ;

Kodu, yine yardım istediğimde, bir üyemiz yazmış ve ben de uygulamıştım, nedenini bilmiyorum (biraz hazırcı davrandım)

Çözüm önerdiğiniz kod, problemimi çözmüştür, ilginiz ve emeğiniz için de teşekkür ederim.

Saygılarımla...
 
Üst