• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Sayfa içindeki TextBox'a Tarih Girişi

  • Konbuyu başlatan Konbuyu başlatan mozdem
  • Başlangıç tarihi Başlangıç tarihi
Katılım
11 Kasım 2005
Mesajlar
454
Excel Vers. ve Dili
Windows 2011 TR
MS Office 365 TR - 64bit

VBA, Selenium ve VBS
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
 
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
 
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.
 
Tam tarih formatında bir veri yazdığınızda MsgBox ile size uyarı veriyor.
 
Geri
Üst