TEXTBOX`UN "##.##.####" GÖRÜNMESİ

Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
TEXTBOX`UN "##.##.####" GÃ?RÜNMESÝ

Arkadaşlar, merak ettiğim bir konu var. Textboxlara format atayabiliyoruz ve TextBox`un UserForm açıldığında ##.##.#### şeklinde tarih formatına uygun olarak görünmesini de sağlıyabiliyoruz.

Sorum şöyle, ##.##.#### bu format üzerinde rakam girdikçe altdaki formatın sırayla yok olmasını sağlıyabilirmiyiz. Bu mümkün mü?
Ã?rnek: 12.##.#### gün girildi sonra ay sonra yıl. gibi

Sevgi ve saygılarımla. Çalışmalarınızda başarılar dilerim. :hey:
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Merhaba;

Aşağıdaki kodları UserForm modulüne yerleştirip, UserForm'u çalıştırın.

Bakalım, istediğiniz gibi bir şey mi oldu ?

[vb:1:2fd49491e6]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
.Text = "##.##.####"
.SelStart = 0
.SelLength = 1
End With
End Sub
[/vb:1:2fd49491e6]
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Raider, siz bir harikasınız elinize sağlık çok güzel olmuş. Bu şekilde yapınca UserForm da çok güzel bir görüntü oluşuyor. Ayrıca formu kullanan kişiye textbox`a girilecek veri hakkında yol gösteriyor. Saygılarımla. :dua:

BİLGİ PAYLAÞTIKÇA ÇOÐALIR.
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Raider, bir şey dikkatimi çekti. Yazılan tarih yanlış yazılır ve yeniden giriş yapmak gerekirse sağdan sola doğru silince veya fare ile silince ##.##.#### şeklinin tekrar görünmesini sağlamak mümkün müdür.? Teşekkür ederim.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Merhaba;

Biraz kestirme olucak ama, aşağıdaki kodu da ilave edin bence... herhangibir şey silindiğinde yeni baştan giriş yapmak zorunda kalır kullanıcı. O kadar da olsun artık ... :mrgreen:

[vb:1:cd7d517708]Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 Or KeyCode = 46 Then
With TextBox1
.MaxLength = 10
.Text = "##.##.####"
.SelStart = 0
.SelLength = 1
End With
End If
End Sub
[/vb:1:cd7d517708]
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Raider, ne diyebilirim. iyi ki varsınız. Her şey gönlünüzce olsun. Çok teşekkürler. Gerçekten güzel bir format oldu. Saygılarımla. :dua:
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Tekrar merhaba;

Kodun birazcık daha gelişmiş hali aşağıdadır.

Bu kez; klavyedeki sağ - sol okları ve sağdan sola doğru silmeye yarayan BackSpace tuşuna bastıkça, TextBox1 deki karakterler seçilebiliyor ve herhangibir karakteri silmek için DELETE tuşuna bastığınızda, o karakterin yerine # işareti çıkıyor. Bu işler yapılırken tarih formatındaki "." işaretini de silemiyorsunuz ki, bu da bir kolaylık tabii ... :mrgreen:

Bu arada; bu kodu kullanırken ... yukarıdaki son mesajımda önerdiğim TextBox1_KeyUp prosedurunu silebilirsiniz çünkü ona ihtiyacımız yok.

[vb:1:650ad60f5d]Private Sub TextBox1_Change()
With TextBox1
.SelLength = 1
If .SelText = "." Then
.SelStart = .SelStart + 1
.SelLength = 1
End If
End With
End Sub
'
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
On Error GoTo ErrHand:
With TextBox1
If KeyCode = vbKeyLeft Or KeyCode = vbKeyBack Then
KeyCode = vbKeySelect
.SelStart = .SelStart - 1
.SelLength = 1
ElseIf KeyCode = vbKeyRight Then
KeyCode = vbKeySelect
.SelStart = .SelStart + 1
.SelLength = 1
ElseIf KeyCode = vbKeyDelete Then
KeyCode = vbKeySelect
If .SelText = "." Then
.SelText = "."
Else
.SelText = "#"
End If
.SelStart = .SelStart - 1
.SelLength = 1
End If
End With
Exit Sub
ErrHand:
KeyCode = vbKeySelect
TextBox1.SelStart = 0
TextBox1.SelLength = 1
End Sub
'
Private Sub UserForm_Initialize()
With TextBox1
.MaxLength = 10
.Text = "##.##.####"
.SelStart = 0
.SelLength = 1
End With
End Sub
[/vb:1:650ad60f5d]
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
Sayın Raider, gerçekten harika oldu. Bende tebrik ediyorum. Harikasınız.
Kodlarınızı denedim çok güzel olmuş. Ancak, bir şey dikkatimi çekti. Textbox`lar arasında "ENTER" la geçiş yapınca ##.##.#### şeklindeki görüntü yazmaya başlayınca kayboluyor. Bunun bir çaresi varmıdır. ?
Ayrıca, UserForm`un Initialize olayına TextBox`ların hepsinin seçimini nasıl yaptırabiliriz. Yani birden fazla textbox`un da aynı şekilde görünmesini nasıl sağlıyabiliriz. Saygılarımla. Çok teşekkürler. :dua:
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Ongun' Alıntı:
Ancak, bir şey dikkatimi çekti. Textbox`lar arasında "ENTER" la geçiş yapınca ##.##.#### şeklindeki görüntü yazmaya başlayınca kayboluyor. Bunun bir çaresi varmıdır. ?
Aşağıdaki kırmızı ilaveyi de kodlarınızda yerleştirin..

[vb:1:5cf1d9cc29]Private Sub UserForm_Initialize()
With TextBox1
.MaxLength = 10
.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
.Text = "##.##.####"
.SelStart = 0
.SelLength = 1
End With
End Sub
[/vb:1:5cf1d9cc29]
 
Katılım
3 Mart 2005
Mesajlar
571
Excel Vers. ve Dili
Excel 2000 Ing.
sn Raider,
elinize sağlık,
çok güzel olmuş.

ancak end ve home tuşlarını da eklerseniz tadından yenmeyecek doğrusu
tam mask edit. :eek:k::
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
isakarakus' Alıntı:
sn Raider,
elinize sağlık,
çok güzel olmuş.

ancak end ve home tuşlarını da eklerseniz tadından yenmeyecek doğrusu
tam mask edit. :eek:k::
Teşekkür ederim .... hakkaten de tatlı bir şey oldu ... :mrgreen:

HOME ve END tuşlarının da ilave edildiği son durum aşağıdadır;

[vb:1:08d8584e85]Private Sub TextBox1_Change()
With TextBox1
.SelLength = 1
If .SelText = "." Then
.SelStart = .SelStart + 1
.SelLength = 1
End If
End With
End Sub
'
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
On Error GoTo ErrHand:
With TextBox1
If KeyCode = vbKeyLeft Or KeyCode = vbKeyBack Then
KeyCode = vbKeySelect
.SelStart = .SelStart - 1
.SelLength = 1
ElseIf KeyCode = vbKeyRight Then
KeyCode = vbKeySelect
.SelStart = .SelStart + 1
.SelLength = 1
ElseIf KeyCode = vbKeyDelete Then
KeyCode = vbKeySelect
If .SelText = "." Then
.SelText = "."
Else
.SelText = "#"
End If
.SelStart = .SelStart - 1
.SelLength = 1
ElseIf KeyCode = vbKeyHome Then
KeyCode = vbKeySelect
.SelStart = 0
.SelLength = 1
ElseIf KeyCode = vbKeyEnd Then
KeyCode = vbKeySelect
.SelStart = Len(TextBox1) - 1
.SelLength = 1
End If
End With
Exit Sub
ErrHand:
KeyCode = vbKeySelect
TextBox1.SelStart = 0
TextBox1.SelLength = 1
End Sub
'
Private Sub UserForm_Initialize()
With TextBox1
.MaxLength = 10
.EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
.Text = "##.##.####"
.SelStart = 0
.SelLength = 1
End With
End Sub
[/vb:1:08d8584e85]
 
Katılım
24 Mayıs 2005
Mesajlar
462
Excel Vers. ve Dili
Excel 2003 Türkçe
sn Raider, elinize sağlık çok güzel bir çalışma. Çok teşekkür ederim. İyi ki varsınız.
Saygı ve sevgilerimle. :mutlu:
 
Katılım
25 Mart 2013
Mesajlar
14
Excel Vers. ve Dili
Excel 2010
elinize sağlık çok kullanışlı olmuş başka bir yerde buna benzer bir şeye rastlamamıştım. peki böyle bir şeyi e-mail formatı içinde yapabilirmiyiz?
 
Üst