Ejecutar macro según el primer carácter ingresado en un textbox

Hola amigos, aquí de nuevo con un dilema tengo el siguiente código

textbox42 change()

On Error Resume Next
'contamos lo que mide de largo
largo_entrada = Len(TextBox42)
'evaluamos la posición de lo que vamos escribiendo
Select Case largo_entrada
'después del 2º carácter, que añada una barra
Case 4
'controlamos algunas manipulaciones de los números
If Right(TextBox42, 1) = "-" Then
TextBox42 = Left(TextBox42, Len(TextBox42) - 1)
Else
TextBox42 = TextBox42 & "-"
End If
'después del 5º carácter, que añada una barra
Case 9
'controlamos algunas manipulaciones de los números
If Right(TextBox42, 1) = "-SE14" Then
TextBox42 = Left(TextBox42, Len(TextBox42) - 1)
Else
TextBox42 = TextBox42 & "-SE14"
End If
End sub

lo cual me genera un numero como 1454-1990-se14 como formato

ahora se me prensento un formato 752154-1990-se14 por lo cual tuve que hacer el mismo código en otro libro configurando los parámetros para tal efecto

como puedo hacer para que al ingresar un 1 en el textbox ejecute este código y al ingresar un 7 ejecute el código modificado pero en un solo libro. Para no generar la duplicidad de libros?

desde ya muchas Gracias.

1 respuesta

Respuesta
1

Usa un inputbox, asocia la respuesta a una variable y luego con evalúa se valor con IF THEN, ELSEIF, ELSE END IF, o puedes usar un SELECT CASE, y en caso de ser 1 (UNO) pues que ejecute el módulo que tu quieras, en caso contrario que se ejecute el otro módulo, y por si ponen un dato no valido, pues mandas un mensaje avisando al usuario.

EJEMPLO:

Sub SeleccionaUnModulo()
X = InputBox("Ingresa el número de módulo a ejecutar 1 o 7", "Selector de Módulos")
If X = 1 Then
MODULO1
ElseIf X = 7 Then
MODULO7
Else
MsgBox "El valor ingresado no corresponde a un dato valido"
End If
End Sub

Gracias, intente darle con tu solución, pero me generaba error en otra parte del código. al final lo solucione agregando unos listbox para los valores por defecto y dejando libre el texboxt para los variables y luego almacenarlos concatenados en la celda como era en un principio. muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas