Sayfa içindeki TextBox'a Tarih Girişi

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
441
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2019 TR - 32bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Merhabalar,
Sayfamda 4 adet tarih girişi yaptığım textbox var. Bunlara aşağıdaki şekillerde giriş yapabilmek istiyorum.
1-01.01.2014
2-01/01/2014
3-01012014
4-1/1/2014
5-10/1/2014
6-1/10/2014

bu şekilde giriş için aşağıdaki kodları yazmaya çalıştım. Ancak şu sorunları çözemedim
1- 01/10/
burada Backspace ile geri gidemiyorum.
2-Tarih yazarken bazan NumLock kapanıyor, anlayamadım.

Aslında bunların hepsinden ötesi takvim nesnesini (MS Excel 2013) bulamadım.
MSCALC.ocx dosyası aradım ama bulamadım. bulduklarım olmadı.

iki sorudan birini çözebilirsek memnun olurum.
teşekkürler.


Kod:
Private Sub TextBox1_Change()
    Set tx = TextBox1
    uzunluk = Len(tx.Value)
    sag = Right((tx.Value), 1)
    
    If uzunluk = 2 Then
        If sag = "/" Or sag = "." Then
        tx.Value = 0 & tx.Value
        Else
        tx.Value = tx.Value & "/"
        End If
    End If
    
    If uzunluk = 4 Then
        If sag = "/" Or sag = "." Then
        SendKeys "{BS}"
        Else
        tx.Value = tx.Value
        End If
    End If
    
    If uzunluk = 5 Then
        If sag = "/" Or sag = "." Then
        tx.Value = Mid(tx.Value, 1, 3) & 0 & Mid(tx.Value, 4, 1) & "/"
        Else
        tx.Value = tx.Value & "/"
        End If
    End If
    
    If uzunluk = 7 Then
        If sag = "/" Or sag = "." Then
        SendKeys "{BS}"
        Else
            If sag <> 2 Then
            SendKeys "{BS}"
            End If
        End If
    End If
    
    
    If uzunluk = 8 Then
            If sag <> 0 Then
            SendKeys "{BS}"
            End If
    End If
    
    If uzunluk = 9 Then
            If Int(sag) < 1 Or Int(sag) > 2 Then
            SendKeys "{BS}"
            End If
    End If
    
    If uzunluk = 10 Then
        
        tx.Text = Format(tx.Text, "dd.mm.yyyy")
        ActiveSheet.Range("d6").Value = tx.Value
        
    Else

End If

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,232
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki kod sizi tarih girmeye yönlendirir. Üzerinde çalışılıp geliştirilebilir.

Kod:
Private Sub TextBox1_Change()
    Set Nesne = CreateObject("VbScript.RegExp")
    Nesne.Pattern = "(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d"
    If Nesne.Test(TextBox1) Then
        MsgBox "Girilen değer tarihtir."
    End If
    Set Nesne = Nothing
End Sub
 

mozdem

Altın Üye
Katılım
11 Kasım 2005
Mesajlar
441
Excel Vers. ve Dili
Windows 2011 TR
MS Office 2019 TR - 32bit

VBA, Selenium ve VBS
Altın Üyelik Bitiş Tarihi
08-04-2026
Aşağıdaki kod sizi tarih girmeye yönlendirir. Üzerinde çalışılıp geliştirilebilir.

Kod:
Private Sub TextBox1_Change()
    Set Nesne = CreateObject("VbScript.RegExp")
    Nesne.Pattern = "(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d"
    If Nesne.Test(TextBox1) Then
        MsgBox "Girilen değer tarihtir."
    End If
    Set Nesne = Nothing
End Sub

yukarıdaki kod 2003 ve 2013 de denedim. Ama, isteklerime cevap olmadı. Kod bir şey yapıyor isede ben farkına varamadım. yardımlarınızı bekliyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,232
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tam tarih formatında bir veri yazdığınızda MsgBox ile size uyarı veriyor.
 
Üst