Cargar texbox con símbolo dólar con dos tipos de números y que acepte solo números

Cómo puedo hacer que al momento de cargar mi formulario en excel cargue el símbolo % y que en esa caja de texto solo me permita ingresar solo números que sean 12% y 25% nada más y que cuando intenté ingresar otro número salga un mensaje de error donde me diga que solo se puede ingresar en número 12% y 25% y que al momento de guardar me lo guarde con el formato porcentaje en el excel.

2 respuestas

Respuesta
1

[Hola Erika. A ver si te sirve este código que te preparé.

Private Sub CommandButton1_Click()
Dim Last As Object
Dim n1, n2 As Double
n1 = "25"
n2 = "12"
Set Last = Hoja1.Range("a65536").End(xlUp)
If Me.TextBox1.Value = n1 Or Me.TextBox1.Value = n2 Then
Last.Offset(1, 0).Value = TextBox1.Text & " " & "%"
Else
MsgBox "debe introducir 25 o 12"
End If
Me.TextBox1.Value = ""
End Sub

Prueba y me comentas

Salu2 Carlos Arrocha

Respuesta
1

Si estrictamente quieres escribir el símbolo % en el textbox. Puedes usar el siguiente código:

Yo no te recomiendo hacerlo así porque puede ser un estorbo para otras validaciones numéricas que quieras hacer en el futuro.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim PrcValue As String
If Me.TextBox1.Value = "12%" Or Me.TextBox1.Value = "25%" Then
    PrcValue = Left(Me.TextBox1.Value, Len(Me.TextBox1.Value) - 1)
    Cells(1, 1).Value = FormatPercent("0." & PrcValue, 0, , vbTrue)
Else
    MsgBox "Solo se permite 12% o 25%", vbExclamation, "Error..."
    Me.TextBox1.Value = ""
End If
End Sub

El código se ejecuta al salir del textbox, pero puedes ponerlo donde quieras, en un Botón por ejemplo, para que se ejecute al presionarlo.

NOTA: no especificas en que celda quieres colocar el resultado, de momento mi código la pone en A1 con la instrucción Cells(1, 1).Value

Puedes jugar con eso, o si lo quieres hacer dinámico me avisas.

Andy M

¡Gracias! 

Gracias por la apreciación Andy Machín lo tendré en cuenta, funciona bien la macros 

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas