Tarih formatı yanlış ise uyarsın.

Katılım
22 Ekim 2004
Mesajlar
178
Excel sayfamda UserForm danverileri giriyorum.
Tarih girerken hatalı giriş yapılırsa
> örneğin:01.01.2005, yanlışlıkla konan bir virgül vb. tarihe göre rapor alırken hata oluşmasına sebep oluyor.Tarih girerken “01.01.2005” formatında girilmezse uyaran ve kayıt yapılmasını engelleyen bir koda ihtiyacım var.Yardımcı olursanız sevinirim.
Teşekkürler.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu textboxa yazın tarih nasıl yazılırsa yazılsın sizin istediğiniz formata çevrilecektir. Çevirme işlemi textboxtan çıkılınca yapılacaktır.
[vb:1:be7a8c27c9]Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "dd.mm.yyyy")
End Sub[/vb:1:be7a8c27c9]
 
Katılım
22 Ekim 2004
Mesajlar
178
Sayın leventm,
Bu kodları denedim.Fakat şöyle bir sorun var."1.01.2005" doğru olarak giriliyor fakat "01.01.2005," şeklinde yanlışlıkla konan bir virgül yada bunun gibi bir hatalı girişten sonra entere basıldığında hata mesajı çıkıyor.Amacım bunu engellemek.Yani işlemin "HATALI GİRİÞ YAPTINIZ" uyarısıyla tekrar tarih yazılacak TextBox a dönmesi yada Exit yapması.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin tarih dışında bir veri girişinde msgbox ile uyarı verecektir.
[vb:1:1cb86f9f44]If IsDate(TextBox1.Value) = False Then MsgBox ("hatalı veri girişi")
[/vb:1:1cb86f9f44]

Not: bu koduda texbox ın exit olayına yazınız.
 
Katılım
22 Ekim 2004
Mesajlar
178
Bu kod gayet güzel çalışıyor fakat "dd.mm.yyyy" formatınıda vererek
(TextBox1 = Format(TextBox1, "dd.mm.yyyy") bu kodu çalıştırabilirmiyiz?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.
[vb:1:235295dcc1]Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox1.Value) = False Then
MsgBox ("hatalı veri girişi")
Exit Sub
End If
TextBox1 = Format(TextBox1, "dd.mm.yyyy")
End Sub
[/vb:1:235295dcc1]
 
Katılım
29 Eylül 2004
Mesajlar
1,810
Excel Vers. ve Dili
Excel 2002 TR
Þöyle birşey (de) olabilir.

[vb:1:53d0664c85]Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1.Value <> "" And IsDate(TextBox1.Value) = False Then
MsgBox ("hatalı veri girişi" & vbCrLf & TextBox1)
TextBox1.Value = ""
Else
TextBox1 = Format(TextBox1, "dd.mm.yyyy")
End If
End Sub[/vb:1:53d0664c85]

alpay1 burda hem daha kalıcı ve öğretici olur, hemde alternatif fikirler alabilirsiniz. 1/3'ü tamam gibi özelde yolladığınız soruların. :D
 
Katılım
22 Ekim 2004
Mesajlar
178
Sayın levetm bey,
Sayın danersin bey,
İkinizede teşekkür ederim sorun çözüldü.Elinize sağlık.
 
Üst