• DİKKAT

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

tarih textbox'u için hazır otomatik format

Katılım
28 Haziran 2007
Mesajlar
141
Excel Vers. ve Dili
microsoft office 2007 - ingilizce
Merhaba arkadaşlar,

Bir userform'a tarih textbox'u yerleştirdim. userform açıldığında, bu textbox'un içinde sadece rakamlar girilsin ama nokta otomatik olarak yazılsın istiyorum. Örneğin; "11.02.2011" girilmesi için sadece "11" yazdıktan sonra nokta çıksın, sonrasında kullanıcıyı noktaya basmadan direk "02" yazsın ve otomatik olarak bir nokta daha çıksın, en son olarak "2011" yazsın. Mümkün müdür bu işlem?

Dün bir arkadaş benzer bir saat uygulamasında şöyle bir kod yardımında bulunmuştu ama ben uyarlayamadım bu kodu. Yardımcı olabilir misiniz?

Kod:
Private Sub TextBox1_Change()
If TextBox1.Value = "" Then Exit Sub
Select Case Len(TextBox1.Value)
Case Is = 2
TextBox1.Value = TextBox1.Value & ":"
Case Is >= 5
TextBox1.Value = Mid(TextBox1.Value, 1, 5)
End Select
End Sub
 
Merhaba arkadaşlar,

Bir userform'a tarih textbox'u yerleştirdim. userform açıldığında, bu textbox'un içinde sadece rakamlar girilsin ama nokta otomatik olarak yazılsın istiyorum. Örneğin; "11.02.2011" girilmesi için sadece "11" yazdıktan sonra nokta çıksın, sonrasında kullanıcıyı noktaya basmadan direk "02" yazsın ve otomatik olarak bir nokta daha çıksın, en son olarak "2011" yazsın. Mümkün müdür bu işlem?

Dün bir arkadaş benzer bir saat uygulamasında şöyle bir kod yardımında bulunmuştu ama ben uyarlayamadım bu kodu. Yardımcı olabilir misiniz?

Kod:
Private Sub TextBox1_Change()
If TextBox1.Value = "" Then Exit Sub
Select Case Len(TextBox1.Value)
Case Is = 2
TextBox1.Value = TextBox1.Value & ":"
Case Is >= 5
TextBox1.Value = Mid(TextBox1.Value, 1, 5)
End Select
End Sub
 
merhaba
Kod:
Private Sub TextBox1_Change()
With TextBox1
.SelLength = 1
If .SelText = "." Then
.SelStart = .SelStart + 1
.SelLength = 1
End If
End With
End Sub
Private Sub UserForm_Initialize()
With TextBox1
.MaxLength = 10
.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
.Text = "  .  .    "
.SelStart = 0
.SelLength = 1
End With
End Sub
bu kodu dener misiniz
 
Öncelikle hızlı cevap için teşekkür ederim. Kodu yazdıktan sonra şöyle bir sorunlar karşılaştım: İlgili textbox'un içinde "##.##.####" yazıyor. Sebebi ne olabilir?
 
Öncelikle hızlı cevap için teşekkür ederim. Kodu yazdıktan sonra şöyle bir sorunlar karşılaştım: İlgili textbox'un içinde "##.##.####" yazıyor. Sebebi ne olabilir?

format'ta nereye veri girdiğinizi göstermek için yapılmış olabilir
kod bana ait değil
kodu yukarıdaki ile değiştirin
 
Kodu ne ile değiştireceğimi anlayamadım, açıklar mısınız?
 
merhaba
Kod:
Private Sub TextBox1_Change()
With TextBox1
.SelLength = 1
If .SelText = "." Then
.SelStart = .SelStart + 1
.SelLength = 1
End If
End With
End Sub
Private Sub UserForm_Initialize()
With TextBox1
.MaxLength = 10
.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
.Text = "  .  .    "
.SelStart = 0
.SelLength = 1
End With
End Sub
bu kodu dener misiniz

Selam,
Yukarıdaki SelText, SelStart, SelLength aynıları comboBox'ta da var. kullanım alanlarından biraz bahseder misiniz?

İyi çalışmalar.
 
Bu şekilde deneyebilirsiniz.
Kod:
Private Sub TextBox1_AfterUpdate()
If Len(Me.TextBox1) > 8 Or Len(Me.TextBox1) < 8 Then _
MsgBox "Tarihi Düzgün Girin": Me.TextBox1 = ""
Me.TextBox1 = Format(Me.TextBox1, "00\.00\.0000")
End Sub
 
Her ikinize de çok teşekkür ederim cevaplarınız için, konu çözülmüştür yardımlarınızla.
 
Geri
Üst