Risolto inserire dati secondo una specifica formattazione

cesarina

Utente junior
3 Maggio 2019
70
1
8
cuneo
Office 365
0
Ciao a tutti,

nella mia userform ho un campo in cui devo inserire un codice in una specifica formattazione.
Mi spiego

il campo da inserire è Hospital Number e deve essere inserito in questo modo :
xx-xx-xx/xxxx
per esempio: 01-67-34/2019

E' possibile creare un campo in cui siano già presenti i trattini e la slash in modo da poter inserire solo i numeri muovendomi con la tab?
 

Rubik72

Excel/VBA Expert
Supermoderatore
Expert
12 Dicembre 2015
5.144
326
83
47
Cosenza
Excel 2016
137
In VBA non esiste un controllo come richiesto ma si può adattare questa routine di evento della TextBox:
Codice:
Private Sub TextBox1_Change()
    Dim iStr As String
    
    Application.EnableEvents = False
    With Me.TextBox1
        Select Case Len(.Value)
            Case 2, 5
                iStr = .Text & "-"
            Case 8
                iStr = .Text & "/"
        End Select
        If iStr <> "" Then .Text = iStr
    End With
    Application.EnableEvents = True
End Sub
 

Bruno

Utente abituale
13 Settembre 2015
550
119
43
Italy
2016 64 Bit W10
38
Ciao

In alternativa al codice di Rubik72

Ho inserito i trattini in un textbox sottostante


Visual Basic:
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = vbKeyBack Then
      If Len(Me.TextBox2) = 4 Then
          Me.TextBox2 = Left(Me.TextBox2, 2)
          KeyCode = False
      ElseIf Len(Me.TextBox2) = 7 Then
          Me.TextBox2 = Left(Me.TextBox2, 5)
          KeyCode = False
      End If

  Else

      If Len(Me.TextBox2) = 2 Or Len(Me.TextBox2) = 5 Then
          'add: -
          Me.TextBox2 = Me.TextBox2 & "-"
      ElseIf Len(Me.TextBox2) = 8 Then
        'add: /
          Me.TextBox2 = Me.TextBox2 & "/"
      ElseIf Len(Me.TextBox2) > 12 Then
          Me.TextBox2 = Left(Me.TextBox2, 12)
      End If
  End If

End Sub
 

Allegati

  • Like
Reactions: Rubik72

cesarina

Utente junior
3 Maggio 2019
70
1
8
cuneo
Office 365
0
Ciao

In alternativa al codice di Rubik72

Ho inserito i trattini in un textbox sottostante


Visual Basic:
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = vbKeyBack Then
      If Len(Me.TextBox2) = 4 Then
          Me.TextBox2 = Left(Me.TextBox2, 2)
          KeyCode = False
      ElseIf Len(Me.TextBox2) = 7 Then
          Me.TextBox2 = Left(Me.TextBox2, 5)
          KeyCode = False
      End If

  Else

      If Len(Me.TextBox2) = 2 Or Len(Me.TextBox2) = 5 Then
          'add: -
          Me.TextBox2 = Me.TextBox2 & "-"
      ElseIf Len(Me.TextBox2) = 8 Then
        'add: /
          Me.TextBox2 = Me.TextBox2 & "/"
      ElseIf Len(Me.TextBox2) > 12 Then
          Me.TextBox2 = Left(Me.TextBox2, 12)
      End If
  End If

End Sub

E' proprio quello di cui ho bisogno!

Solo che non sono così esperta, e non riesco a capre come hai fatto, e quindi non mi riesce inserire la sub nella mia userform...
 

cesarina

Utente junior
3 Maggio 2019
70
1
8
cuneo
Office 365
0
Ciao

In alternativa al codice di Rubik72

Ho inserito i trattini in un textbox sottostante


Visual Basic:
Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = vbKeyBack Then
      If Len(Me.TextBox2) = 4 Then
          Me.TextBox2 = Left(Me.TextBox2, 2)
          KeyCode = False
      ElseIf Len(Me.TextBox2) = 7 Then
          Me.TextBox2 = Left(Me.TextBox2, 5)
          KeyCode = False
      End If

  Else

      If Len(Me.TextBox2) = 2 Or Len(Me.TextBox2) = 5 Then
          'add: -
          Me.TextBox2 = Me.TextBox2 & "-"
      ElseIf Len(Me.TextBox2) = 8 Then
        'add: /
          Me.TextBox2 = Me.TextBox2 & "/"
      ElseIf Len(Me.TextBox2) > 12 Then
          Me.TextBox2 = Left(Me.TextBox2, 12)
      End If
  End If

End Sub

E' proprio quello di cui ho bisogno!

Solo che non sono così esperta, e non riesco a capre come hai fatto, e quindi non mi riesce inserire la sub nella mia userform...

aspetta aspetta!!! forse ci riesco
 

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!