• DİKKAT

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

TextBox' a Tarih girişi.

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
TextBox'a aşağıdaki örneklerden herhangi birini yazarak tarihleri girebilmek istiyorum.
01012011
1/1/2011
1.1.2011
01/01/2011
01.01.2011

gün/ay/yıl formatı ile tarih girdiğimde
tarih algılasın ve

günümüzdeki tarihten 2 yıl önceki tarih ile 2 yıl sonraki tarihler girilirse uyarsın.
istersem gireyim.
Teşekkür ederim.
 

Ekli dosyalar

Merhaba,

Aşağıdaki kodlar gibi dener misiniz?
İlk yazdığınız girişi kontrol etmedim. Diğer girişler zaten vba tarafından kontrol edilir. Yılı tek ya da 2 hane yazabilirsiniz, 4 karakter uzunluğunda yazıpta yorulmayınız. :)
+2 -2 yıl kontrolünü Private Sub TextBox2_Exit de de yapabilirsiniz, isteğe kalmıştır.

Kod:
Private Sub CommandButton1_Click()
 
    If CDate(TextBox2.Value) < DateSerial(Year(Date) - 2, Month(Date), Day(Date)) Or _
        CDate(TextBox2.Value) > DateSerial(Year(Date) + 2, Month(Date), Day(Date)) Then
        TextBox2.SetFocus
        MsgBox "2 YIL ÖNCESİNDEN KÜÇÜK, YA DA 2 YOL SONRASINDAN BÜYÜK TARİH YAZAMAZSINIZ"
        Exit Sub
    Else
        Range("a1000").End(xlUp).Offset(1, 0) = CDate(TextBox2.Value)
    End If
    
End Sub

Kod:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    [B]TextBox2.Value = Format(TextBox2.Value, "dd.mm.yyyy")[/B]
End Sub
 
Son düzenleme:
hata verdiği için mesaj silindi...
 
Son düzenleme:
şu şekilde çalıştı bende
+2/-2 yıl kontrolü ile...

Kod:
Dim dTar As Date

Private Sub CommandButton1_Click()

    Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Value = dTar

End Sub


 
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
    
    If DateValue(TextBox2.Value) > DateValue(DateAdd("yyyy", 2, Date)) Or _
           DateValue(TextBox2.Value) < DateValue(DateAdd("yyyy", -2, Date)) Then
        MsgBox "Tarih bugün ile 2 yıl önce sonra arasında olmalıdır. Düzeltin!", vbCritical
        TextBox2.Value = vbNullString
        TextBox2.SetFocus
        Exit Sub
    End If
    
    TextBox2.Value = Format(TextBox2.Value, "dd/mm/yyyy")
    dTar = TextBox2.Value

End Sub
 
Sayın, mancubus ve Necdet Yeşertener hocalarım,

Öncelikle cevaplarınız için teşekkür ederim.

Yapmak istediğim, TextBox2 ye yalnızca tarih girilsin ve herhangi bir yanlış veri dolayısıyla hata kodu vererek program hata vermesin.

örneğin, 30/02 yada 31/11 gibi değerler girildiğinde yada boş geçildiğinde. vs.
yada
dfgh karakterler girilmesin

tarih girerken "/" işaret yada "." nokta kullanmadan da veri girilsin istemiştim.
ve bunların hepsini saatlerce uğraşıdan sonra ancak bu kadar uzun bir kod ile çözebildim.
(Sanırım Sol Kulağımı Sağ elimle tuttum)

Çok şey öğrendiğim Excel.web.tr sitesi okuyucuları ile paylaşmak istedim.

Çok Teşekkürler
 

Ekli dosyalar

Çok teşekkürler mozdem, çok yararlı bir paylaşım.
 
Geri
Üst