Textboxa girilen tarihi istediğim sütunda aratmak istiyoru

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,239
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selam arkadaşlar,

İlk olarak 1. yılımız kutlu olsun. Nice yıllara hep birlikte başarılarla girmek dileğiyle...

Soruma gelince;

Gönderdiğim örnek dosyada bir userfom yardımı ile günlük döviz kurlarını girerek takip etmek istiyorum. Bilgileri sayfaya aktarmayı başardım. Fakat bir sorunla karşılaştım. "LİSTEYE EKLE" butonuna ne kadar tıklarsam o kadar bilgi ekliyor. Bu butona tıkladığımda ilk olarak Textbox1 e girdiğim tarihi "A" sütununda arayıp bulmasını ve karşılığındada Combobox1 de seçtiğim kur tipinin bulunduğu sütunda değer olup olmadığını kontrol etmesini istiyorum. Eğer değer varsa uyarı mesajı versin. Eğer değer yoksa eklesin istiyorum. Ayrıca başka bir userformda ise Textbox1 e tarih girip bu tarihe göre Textbox2 ye bu kur bilgilerini nasıl getirebilirim. Daha önce bu soruyu sormuştum. Ama bana "veyselemre" arkadaşımız Combobox yöntemiyle bir çözüm yolu önermişti. Ben Textboxlar yardımı ile yapmak istiyorum. (Mümkünse tabiki)


İyi çalışmalar dilerim.
 
Katılım
22 Nisan 2005
Mesajlar
486
Excel Vers. ve Dili
tarkan@tarkanvural.com.tr
birinci sorunuz için:
loop döngüsünden sonra bir denetim daha yaptırmalısınız, yazılacak hücrenin yanındaki tarih ile sizin userformdaki tarihler aynı mı şeklinde?
Euro için :
Kod:
If UserForm2.TextBox1.Text = ActiveCell.Offset(0, -1).Text Then
aynı ise loop döngüsünden sonraki satırı işlemeye devam etsin, aynı değilse hata mesajı versin :
Kod:
Else
MsgBox "tarihler farklı, lütfen kontrol ediniz ", vbexclamation, "U Y A R I "
Bu kodu USD ve GBP için geliştirebilirsiniz.

2.sorunuzun cevabı ise :

Combobox çalışması tabii ki daha makul görünüyor, ama ısrarla textbox olsun diyorsanız;
Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim bul As Range
    For Each bul In Worksheets("DÃ?VİZ KURLARI").Range("a8:a2200")
        If TextBox1.Text = bul.Text Then
            Rows(bul.Row).Select
                TextBox2.Value = ActiveCell.Offset(0, 1).Value
                TextBox3.Value = ActiveCell.Offset(0, 2).Value
                TextBox4.Value = ActiveCell.Offset(0, 3).Value
        End If
    Next bul
End Sub
işinizi görecektir. Ancak textboxa yazdığınız tarih formatınızın hücredeki ile aynı olmasına dikkat edin.
Kolay gelsin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,239
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayın Tarkan VURAL,

Cevap olarak yazdığınız kodları örnek dosyaya uyarlayabilirmisiniz. Ben beceremedim.

İyi çalışmalar dilerim.
 
Üst