• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü textbox a yazılan tarihin kendini bozması

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Discreum

Yeni Üye
Katılım
21 Mar 2021
Mesajlar
152
Aldığı beğeni
37
Excel V
Office 2019 TR
Konu Sahibi
Adsız.pngAdsız2.png
Normalde Excel yüklerim ama bu pek karışık bir konu olmadığını düşünerek eklemedim.
ancak tarihi dümdüz 8 hane olarak yazınca yukardaki gibi saçma bir hal alıyor ama heştek işaretindeki nokta yerine - işaretini koyunca normal hiç bir problem yok ancak ben ille de nokta olmasını istiyorum
 
format kısmını kaldırın
 
Üstat şunu kullanın:
"##,##,####"
Nokta yerine Virgül

Sonuç olarak 02.02.2022 şeklinde tarih göreceksiniz.
 
Ayrıca şöyle de bir alternatif var:

Textbox Change olayına:

'Select Case TextBox1.SelStart
'Case Is = 2, 5
'TextBox1.SelText = "."
'End Select
 
Konu Sahibi
Üstat şunu kullanın:
"##,##,####"
Nokta yerine Virgül

Sonuç olarak 02.02.2022 şeklinde tarih göreceksiniz.
sevgili üstadım onu ben denediydim ztn bu seferde bu şekilde kaydırma yapıyor sebebi ise başlangıçta 07.03.2022 yazdığımda 07 deki 0 değerini almıyor direk 7 den başlatıyor ve buda kaymaya sebep oluyor yani 0 değerini kaydırmasını anlamadım ztn
 
Bunu deneyin :)

If Left(TextBox3.Value, 1) = 0 Then
TextBox3.Value = Format(Right(TextBox3.Value, 7), "0#,##,####")
Else
TextBox3.Value = Format(TextBox3.Value, "##,##,####")
End If

İlk rakam 0 olduğunda, metin uzunluğunu 8 olarak saysa bile 7 basamaklı sayı gibi davranıyor.
Ufak bir hile ile sanıyorum halledebiliriz. :)
 
Konu Sahibi
Ayrıca şöyle de bir alternatif var:

Textbox Change olayına:

'Select Case TextBox1.SelStart
'Case Is = 2, 5
'TextBox1.SelText = "."
'End Select
çözüm yolu
heçtek simgesinin ardındaki noktalama işaretlerini sildim ve ubak üstadım sizin eklediğiniz kodlamayı
'Select Case TextBox1.SelStart
'Case Is = 2, 5
'TextBox1.SelText = "."
'End Select

keypress prosedüründe

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Or KeyAscii = 32 Then
KeyAscii = 0
End If
Select Case TextBox3.SelStart
Case Is = 2, 5
TextBox3.SelText = "."
End Select
End Sub

ekleme yaptım ve textbox daki maximum karakter sınırını 8 den 10 a çıkarınca sorun tamamen çözülmüş oldu soal ubak hocam.
 
Rica ederim.
8 numaralı mesajda yazdığım koşul kontrolü senin kodları da hallediyor aslında. Hangisini istersen onu kullanırsın.
İyi geceler.
 
Düzelteme 8 numaralı mesajı unut. Hala kaydırma yapıyor. :) :)
Alternatif yöntemle devam :)
 
Sonunda buldum :)
Her türlü on numara sonuç veriyor.
Format(CDate(Format(TextBox1.Value, "##-##-####")), "dd.mm.yyyy")
 
Son düzenleme:
Çözüm
Buda örneğin sayfaya butonla kaydetmede hatalı tarih ise mesaj veriri ayrıca ben 2019 dan küçük şartı eklemiştim.

Userform kod;
HTML:
Rich (BB code):
İçeriği görebilmek için Giriş yap ya da Üye ol.

Modül kod;
HTML:
Rich (BB code):
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst