• DİKKAT

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

Tarih formatının istenilen dışında girilmesi

  • Konbuyu başlatan Konbuyu başlatan htsumer
  • Başlangıç tarihi Başlangıç tarihi

htsumer

Altın Üye
Altın Üye
Katılım
7 Eylül 2004
Mesajlar
975
Excel Vers. ve Dili
Excel-2003
Merhaba,

UserForm üzerinde texbox içine "dd.mm.yyyy" fornatında girilmesi gerekiyor.Bunu sağlamak için

Kod:
Private Sub TextBox73_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox73 = Format(TextBox73.Text, "dd.mm.yyyy")
End Sub

uyguluyorum..

Fakat kullanıcı "yyyy" yani 1968 gibi formatta giriyor ve veri dosyasına yada exit sonrası 01.01.1905 gibi biçim uyguluyor..

TexBox formatını serbest bıraktığımda yani kodları sildiğimde kullanıcı istediği gibi girebiliyor.
"yyyy" formatında rahat giriyor ama "dd.mm.yyyy" formatında girdiğinde excel veri sayfasına "mm.dd.yyyy" formatında atıyor..

Şimdi her iki halde bu formata bir çareden ziyade şöyle bir şey istiyorum..

Exit sonrası "dd.mm.yyyy" formatında girilmdiği takdirde

MsgBox" Bu tarih formatında giremezsiniz..Ancak Gün Ay ve Yıl olarak girebilirsiniz" ikazını verecek (
Kod:
TextBox73 = Format(TextBox73.Text, "dd.mm.yyyy")
)bir kod..

| Hem istenilen formatta kaydedecek hemde istenilmeyen formatta girilmesini engelleyecek ikaz sorgu kodu eklenecek..

Change kısmına yazdım ama exit ile çakışma yaşadım..Exit olayına kombine bir kod lazım..
Tşk.
 
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If Len(TextBox1.Text) = 10 And IsDate(TextBox1) Then
    If InStr(1, TextBox1.Text, ".") > 0 Or InStr(1, TextBox1.Text, "-") > 0 Or InStr(1, TextBox1.Text, "/") > 0 Then
        TextBox1 = Format(TextBox1.Text, "dd.mm.yyyy")
    Else
        GoTo Son
    End If
    Else
        GoTo Son
    End If
    Exit Sub
Son:
    Cancel = True
    MsgBox "Lütfen gg.aa.yyyy formatında tarih girişi yapınız !", vbCritical
End Sub
 
Korhan bey, Mesajınıza yeni cevap verebiliyorum..İşyerinde yoğundum..İşyerimizi kapattıkta (Tekel)

Kod istediğim gibi olmuş teknik bir sorun var ama benim kodlarlar ilgili onuda hallederim..
İlginiz için teşekkür ederim..
Kolay gelsin..
 
Korhan bey; peki burda biz tarihi 20022002 diye girince, userformdan çıkınca 20.02.2002 gibi tarihi çevirmesini istesek nasıl yaparız. Teşekkürler
 
Sayın tarzanhaci,

Tam test etmedim ama sanırım aşağıdaki kod işinizi görür.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 = "" Then GoTo 10
If Len(TextBox1) = 8 Then
TextBox1.Value = Mid(TextBox1, 1, 2) & "." & Mid(TextBox1, 3, 2) & "." & Mid(TextBox1, 5, 4)
End If
If Not IsDate(TextBox1) Then
MsgBox "Tarih giriniz"
Else
TextBox1 = Format(TextBox1, "dd.mm.yyyy")
End If
10
End Sub
 
Tekrar merhaba

Korhan beyin verdiği kod genel süreçte çalışıyor.

Fakat şöyle bir durum var.

01/06/1968 yazıldığını düşünün ama yazarken 01/06/1969 yazılıyor ve geri dönüp (9) rakamını (8) yapmak istediğimde (8) yapıyorum ama gene format ikazı veriyor...Komple silip yeniden doğrusunu (01/06/1968) yazmak gerekiyor.Ve onu yapmadan ne diğer textlere geçebiliyorum nede çıkış ile çıkabiliyorum.Sadece orayı silip yeniden yazmam gerekiyor..
Düzeltme sonrası kabul edip izin vermeli.

Örnek dosya ektedir..
Gönderdiğim dosyadaki Text2 için örneğin 01/06/1969 yazın ama 1969 yerine 1968 yazılması gerekirken 1969 yazmışış ve dönün Text2 içine 1969 in (9) rakamını (8) yapın.Ne demek istediğimi anlayacaksınız..Artık Text2 den çıkamıyorum ..İlla silmem gerekiyor tarihin tamamını..
 

Ekli dosyalar

Geri
Üst