Eliminar espacios de un textbox

Tengo un formulario, que alimenta una base de datos en excel, el usuario llena el textbox con la información, la cual es un numero de serie corrido, necesito que si colaca un espacio o un carácter que no sea letra o numero, al momento de presionar el botón de agregar, se borren automáticamente

Respuesta

Te envío la macro que se adapta a tus requerimientos.

Deberas reemplazar Range("B7").value por el text box, para que tome el input que vos buscas y al final que pegue el valor depurado en el campo de input box o mismo en la planilla para que la modificacion sea transparente para el usuario

Sub Macro1()
' Written by Juan Manuel Cosceri (25-01-2018)
'Input
Z = Range("b7").Value
caracteres = Len(Z)
looper = 1
Do Until looper > caracteres
Variable = UCase(Mid(Z, looper, 1))
If IsNumeric(Variable) Or Variable = "A" Or Variable = "B" Or Variable = "C" Or Variable = "D" Or Variable = "E" Or Variable = "F" Or Variable = "G" Or Variable = "H" Or Variable = "I" Or Variable = "J" Or Variable = "K" Or Variable = "L" Or Variable = "M" Or Variable = "N" Or Variable = "Ñ" Or Variable = "O" Or Variable = "P" Or Variable = "Q" Or Variable = "R" Or Variable = "S" Or Variable = "T" Or Variable = "U" Or Variable = "V" Or Variable = "W" Or Variable = "X" Or Variable = "Y" Or Variable = "Z" Then
looper = looper + 1
Else
Z = Replace(Z, Variable, "")
End If
caracteres = Len(Z)
Loop
Range("b7").Value = Z
'
End Sub

Por favor, recuerda valorar la respuesta!

Slds

Juan

2 respuestas más de otros expertos

Respuesta
1

Pon el siguiente evento en tu userform, de esta forma al usuario solamente se le permitirá capturar letras y números

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    'solamente números y letras
    Select Case KeyAscii
        Case 48 To 57                   '0123456789
        Case 65 To 90, 97 To 122        'A-Z, a-z
        Case 225, 233, 237, 243, 250    'á é í ó ú
        Case 193, 201, 205, 211, 218    'Á É Í Ó Ú
        Case 241, 209                   'ñ Ñ
        Case Else: KeyAscii = 0
    End Select
End Sub

Avísame cualquier duda.

Respuesta

Quizá te sea útil no permitir caracteres distintos a los número o a las letras en tu TextBox. Podrías usar el evento "KeyPress" para eso:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then 'Números
If Not (KeyAscii >= 65 And KeyAscii <= 90) Then 'Mayúsculas
If Not (KeyAscii >= 97 And KeyAscii <= 122) Then 'Minúsculas
KeyAscii = 0
MsgBox "Solo puedeS ingresar números o letras", vbOKOnly + vbInformation, "AVISO"
End If: End If: End If
End Sub

Obviamente cambiar por el nombre de tu "TextBox"

Comentas

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas