Combobox ile listelediğim tarihlerde problem var...

Korhan Ayhan

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

Ekte yolladığım çalışmamda comboboxlarda yaşadığım bazı sıkıntılar var.

Comboboxlardan bazılarında tarihler listeleniyor.Ben bu tarihleri comboboxa elle girmek istediğimde garip rakamlar beliriyor.Bunun bir çözümü varmı.Çünkü liste kalabalık olduğu için istenilen tarihi seçmek zor oluyor.

1- İlk olarak yapmak istediğim "Günlük Kurlar" butonuna tıklayıp gelen menüden istediğim kur tipini seçip daha sonrada tarihi seçip kur bilgisini girip "Ekle" butonuna tıkladığımda excel "KURLAR" sayfasında seçtiğim tarihe kur bilgisini ekletmek istiyorum.Þu haliyle ilk boş hücreye ekliyor.

2- Dosya açıldığında ekrana gelen ilk formda bulunan kutucukların bilgi girilmeden bir sonraki kutucuğa geçilmesini nasıl sağlayabilirim.Yine aynı ekranda "GİRİÞ TARİHİ" kutucuğuna tarih bilgisi girilince "DÃ?VİZ KURU" kutucuğuna o tarihe ait bilginin gelmesini istiyorum.Ayrıca "FARK GÜN" kutucuğunda yaptığım hesaplama işlem doğru sonucu vermiyor.

3- "Kategori Ekle/Sil" ekranında kullanan kişiye bilgi vermek amacı ile kutucuklara açıklamalar yazdım.Bu form aktif olduğunda kutucukların içindeki yazıları nasıl seçili hale getirebilirim.

Bu sorunları çözmemde yardımcı olacak arkadaşlara şimdiden çok teşekkür ediyorum.

İyi çalışmalar dilerim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Comboboxlardan bazılarında tarihler listeleniyor.Ben bu tarihleri comboboxa elle girmek istediğimde garip rakamlar beliriyor.Bunun bir çözümü varmı.Çünkü liste kalabalık olduğu için istenilen tarihi seçmek zor oluyor.
Ã?ncelikle bu sorunuzu cevaplayım.

Comboboxın change olayına tarih formatını yazmışsınız. Elle giriş yaparken daha ilk rakamda tarihe çeviriyor. Bu sebeple buradaki kodu exit olayına yazın. Ã?rneğin;

[vb:1:65e80371d9]Private Sub ComboBox5_Exit(ByVal Cancel As MSForms.ReturnBoolean)
ComboBox5 = Format(ComboBox5, "dd.mm.yyyy")
End Sub
[/vb:1:65e80371d9]
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,510
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sn Leventm;

Vermiş olduğunuz kodları daha önce denemiştim ama o kısma gelip elle 01.01.2005 tarihini girmek istediğimde 38353 rakamı çıkıyor.Tarihi sayı formatında algılıyor.Bunu çözemedim.

Teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
38353 rakamı excelde tarih değerinin sayısal karşılığıdır. Tarih yazılı bir hücrenin formatını, "genel" yaparsanız bunun sayısal karşılığını görebilirsiniz. Eğer hücrede sayı görüyorsanız yapmanız gereken sadece hücreyi tarih olarak biçiminlendirmektir. Bu arada 1 nolu sorunuz için EKLE butonundaki kodu aşağıdaki ile değiştirerek deneyin.

[vb:1:3e406bab81]Private Sub CommandButton1_Click()
On Error GoTo 10
If Not IsNumeric(TextBox1) Then
MsgBox ("Lütfen bulunduğunuz bölüme sayısal bir veri girişi yapınız."), vbExclamation
TextBox1 = ""
TextBox1.SetFocus
Exit Sub
End If
Set s1 = Sheets("KURLAR")
sat = s1.[a7:a65536].Find(CDate(ComboBox2.Value)).Row
If ComboBox1.Value = "EURO" Then sut = 2
If ComboBox1.Value = "GBP" Then sut = 4
If ComboBox1.Value = "USD" Then sut = 3
s1.Cells(sat, sut) = TextBox1 * 1
MsgBox ("Kayıt ekleme işlemi tamamlanmıştır."), vbInformation
Exit Sub
10 MsgBox "Seçilen tarih bulunamadı"
End Sub[/vb:1:3e406bab81]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,056
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
2.sorunuz için aşağıdaki kodları deneyin. GİRİÞ TARİHİ comboboxına yazılacaktır.

[vb:1:cabe2d9914]Private Sub ComboBox5_Click()
ComboBox5 = Format(ComboBox5, "dd.mm.yyyy")
On Error Resume Next
Set s1 = Sheets("KURLAR")
sat = s1.[a7:a65536].Find(CDate(ComboBox5.Value)).Row
If ComboBox2.Value = "EURO" Then sut = 2
If ComboBox2.Value = "GBP" Then sut = 4
If ComboBox2.Value = "USD" Then sut = 3
TextBox1 = s1.Cells(sat, sut).Value
End Sub[/vb:1:cabe2d9914]

Fark hesabının hatalı olması normaldir, iki tarihi toplatıyorsunuz. Bu toplamadaki mantık nedir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,510
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sayın Leventm;

Formüldeki hatamı tesbit edip düzelttim.Þuanda doğru hesaplıyor.

3. sorumun cevabını alamadım.

1. ve 2. soruların cevapları için teşekkürler.

İyi çalışmalar dilerim.
 
Üst