Textboxa yazılan tarih sayfadaki tarihten büyükse başa d

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekte gönderdiğim dosyada userform üzerinde 3 adet textbox ile tarih kontrolü yapmak istiyorum fakat bir türlü tarih yanlış olunca textbox1 e dönemedim. Birşeyleri hatalı yapıyorum fakat bulamadım.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Aşağıdaki kodları sizinkiyle değiştiriniz
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

DEG = Format((TextBox1 & "/" & TextBox2 & "/" & TextBox3), 0)
DEG1 = Format([A1], 0)
If DEG > DEG1 Then
TextBox1 = ""
TextBox2 = ""
TextBox1.SetFocus
End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Zafer bey ilginiz için teşekkürler vermiş olduğunuz kodları denedim fakat yine olmadı. Yanlış tarih yazınca ısrarla textbox4 ü focusluyor bir türlü anlam veremiyorum.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba
Yanlış tarih tenkastınız nedir.

Textbox daki tarih a1 deki tarihten büyükse textbox1'e git.
Değilse textbox4'ü seçer
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yanlış tarihten kastım A1 hücresinden büyük bir tarih girdiğimde ısrarla textbox4 ü focusluyor demek istemiştim.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Tarih formatlarımız değişik herhalde
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Zafer bey eklediğini dosyayı indirdim gayet güzel çalışıyor fakat form üzerine bir adet daha textbox eklediğimde ve tarihide sayfadaki tarihten büyük girdiğimde direk olarak textbox4 focusluyor burasını çözemiyorum neden böyle yapıyor acaba ? (Bu arada kendi çalışmamdada 3 adet textbox ile denediğimde sizin eklediğiniz gibi çalışıyor tarih formatımda bir sorun olduğunu zannetmiyorum başka bir sıkıntı var gibi... ama bulamadım maalesef :!:
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,


Kod:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If TextBox1 = "" Or TextBox2 = "" Then Exit Sub
    If IsDate((TextBox1) & "." & (TextBox2) & "." & (TextBox3)) = False Then GoTo hata
    If CDate((TextBox1) & "." & (TextBox2) & "." & (TextBox3)) > CDate(Sayfa1.Range("A1")) Then
        GoTo hata
    Else: Exit Sub
    End If

hata:
    TextBox2 = ""
    TextBox1 = ""
    TextBox1.SetFocus
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. dost ilginiz için teşekkür ederim.Fakat sonuç değişmedi.

Userform üzerinde 3 adet textbox olunca problem yok aslında kod istediğim gibi çalışıyor fakat form üzerine 4. textboxı ekleyince tarihi sayfadaki tarihten büyük yazdığımda textbox1 yerine textbox4 ü focusluyor (çok garip) tahminimce tarihi bu şekilde 3 adet textbox ile kullanınca çözümü yok gibi görünüyor.
 

zafer

Super Moderator
Yönetici
Katılım
8 Mart 2005
Mesajlar
3,288
Excel Vers. ve Dili
OFFICE 2003 TÜRKÇE
OFFICE 2010 TÜRKÇE
Merhaba

Textbox4 un özelliklerinden tabstop seçeneğini false yapın
veya
Kodlarınızı TextBox2_Change olayına yazın
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Zafer bey dediğiniz şekilde uyguladım ve istediğim sonuca ulaştım teşekkür ederim. :arkadas:
 
Katılım
17 Kasım 2005
Mesajlar
73
Merhaba

Aşağıdaki değişiklikleri de yaparsanız aynı sonuca ulaşırsınız

kolay gelsin

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)

DEG = Format((TextBox1 & "/" & TextBox2 & "/" & TextBox3), 0)
DEG1 = Format([A1], 0)
If DEG > DEG1 Then
TextBox1 = ""
TextBox2 = ""
'TextBox1.SetFocus
Application.SendKeys "+{TAB}"
Application.SendKeys "+{TAB}"
End If

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,245
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Bu çözümde gayet güzel teşekkürler...
 
Üst