Na questão principal, troque as rotinas pelas as abaixo :
Private Sub TextBoxAIinicial_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
Dim ctl As MSForms.Control
Dim result As Double
Dim sText
MyString = TextBoxAIinicial.Value
sText = Left(MyString, 5)
If Len(MyString) < 11 Then
MsgBox "Você digitou o numero incorreto !!!"
With TextBoxAIinicial
.Value = ""
End With
Else
result = Right(MyString, 6)
i = 1
For Each ctl In Me.Controls
If Len(CStr(result)) <= 6 Then
If TypeName(ctl) = "TextBox" Then
sNomeTxt = Left(ctl.Name, 6)
If sNomeTxt = "TextAI" Then
result = result + i
sResult2 = CStr(result)
sResult2 = CStr(String(6 - Len(sResult2), "0")) + CStr(sResult2)
ctl.Text = sText & sResult2
End If
End If
End If
Next
End If
End Sub
e :
Private Sub TextBoxAIinicial_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
'Limita a Qde de caracteres
TextBoxAIinicial.MaxLength = 11
Select Case KeyAscii
Case 8, 48 To 57 ' BackSpace e numericos
If Len(TextBoxAIinicial) = 1 Or Len(TextBoxAIinicial) = 5 Then
TextBoxAIinicial.Text = TextBoxAIinicial.Text & "-"
SendKeys "{End}", False
ElseIf Len(TextBoxAIinicial) = 4 Then
TextBoxAIinicial.Text = TextBoxAIinicial.Text & "-"
SendKeys "{End}", False
End If
End Select
Select Case KeyAscii
Case Asc("A") To Asc("Z"), Asc("a") To Asc("z")
If Len(TextBoxAIinicial) >= 1 Then
MsgBox "Favor inserir(C-35-1234567)Faixa-Série-Números!", vbCritical, "Erro de validação"
KeyAscii = 0
End If
Case Asc("0") To Asc("9")
If Len(TextBoxAIinicial) < 2 Then
MsgBox "Favor inserir a Faixa!(X-00-123456)", vbCritical, "Erro de validação"
KeyAscii = 0
End If
Case Else
MsgBox "Favor inserir a Faixa-Série-Números!", vbCritical, "Erro de validação"
KeyAscii = 0
End Select
If KeyAscii = 14 Then ' tecla BackSpace apaga o último caracter da TextBox, a partir do último digitado.
Dim x As Integer
x = Len(TextBoxAIinicial.Text) - pos
For i = 1 To x
TextBoxAIinicial.Text = Left(TextBoxAIinicial.Text, Len(TextBoxAIinicial.Text) - 1) ' apaga o último caracter
TextBoxAIinicial.SelStart = pos
Next
End If
End Sub
Agora não entendi o que quer com :
"É possível as outras textbox serem preenchidas conforme for digitando?", uma vez que os demais textbox são preenchidos automaticamente apos sair do TextBoxAIinicial.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 23/04/2016 8:51 pm