Textbox formatının #-### ### ## ## şeklinde maskelenmesi

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Soru başlığındanda anlaşılacağı gibi textbox formatını #-### ### ## ## şeklinde maskelemek istiyorum. Aşağıda Sn. Haluk beye ait kodları bu formata göre nasıl düzenleyebiliriz.

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
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Haluk bey,

Size ait kodları istediğim formata nasıl dönüştürebiliriz. :hey:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Þöyle deneyin ...

Kod:
    Private Sub TextBox1_Change()
        With TextBox1
            .SelLength = 1
            If .SelText = " " Or .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 = 15
            .EnterFieldBehavior = fmEnterFieldBehaviorRecallSelection
            .Text = "#-### ### ## ##"
            .SelStart = 0
            .SelLength = 1
        End With
    End Sub
 
Üst