Datos InputBox

Hola Elsa.
En un InputBox ha de introducirse un número. Si se introduce un número no esperado aparecerá un MsgBox advirtiendo del error. Este es el código que tengo:
----------------
Dim SERIE As Integer
   SERIE = Application.InputBox("Escriba el número asociado a la SERIE elegida según la siguiente tabla:" & vbCrLf & _
   "          1  -->  SERIE6000               4  -->  PLIBAT" & vbCrLf & _
   "          2  -->  SERIE4000               5  -->  BATEX" & vbCrLf & _
   "          3  -->  PROGRESS               6  -->  TECNO", "SELECCIÓN DE SERIE")
     If SERIE <> False Then
        If SERIE = 1 Or SERIE = 2 Or SERIE = 3 Or SERIE = 4 Or SERIE = 5 Then
         Range("$CM$147").Value = SERIE
        Else
         Call MsgBox(vbCrLf & vbCrLf & "Debe introducir el número asociado a la SERIE elegida" & vbCrLf _
         & "según la tabla de la ventana de SELECCIÓN DE SERIE." & vbCrLf & vbCrLf, vbInformation, "¡Atención!")
        End If
     End If
----------------------
Necesito saber:
1. Cómo hacer que se muestre el mismo MsgBox al insertar un texto en vez de un número o al insertar un 0 o pulsar INTRO.
2. Cómo hacer que, tras el MsgBox de advertencia, vuelva a aparecer automáticamente el MsgBox
3. Cómo "mejorar" la apariencia del InputBox: solo me deja escribir 5 líneas y la ventana de inserción de datos es igual de ancha que el InputBox.
¿Alguna sugerencia para el código que te envío?
Muchas gracias de antemano.

1 Respuesta

Respuesta
1
Recién empiezo la lectura de las consultas. Por la tarde te enviaré el código ajustado. No finalices aún.
Aquí te adjunto tu macro ajustada.
Como False y 0 devuelven el mismo resultado, contemplo el largo de la variable SERIE
No la declaré como integer a la variable para que no produzca error al ingresar letras, la rutina luego contempla eso. Ajusté tu rango a máx 6 en lugar de 5.
Dejé un comentario de Correcto solo como control, quítalo si te parece.
Sub RellenaPlantilla()
'----------------
Dim SERIE
Dim ind As Byte
While ind <> 1
   SERIE = Application.InputBox("Escriba el número asociado a la SERIE elegida según la siguiente tabla:" & vbCrLf & _
   "          1  -->  SERIE6000               4  -->  PLIBAT" & vbCrLf & _
   "          2  -->  SERIE4000               5  -->  BATEX" & vbCrLf & _
   "          3  -->  PROGRESS               6  -->  TECNO", "SELECCIÓN DE SERIE")
    If SERIE = False And Len(SERIE) > 1 Then
    ind = 1
    ElseIf SERIE >= 1 And SERIE <= 6 Then
         Range("$CM$147").Value = SERIE
         ind = 1
         MsgBox "Correcto"     'opcional
    Else
         Call MsgBox(vbCrLf & vbCrLf & "Debe introducir el número asociado a la SERIE elegida" & vbCrLf _
         & "según la tabla de la ventana de SELECCIÓN DE SERIE." & vbCrLf & vbCrLf, vbInformation, "¡Atención!")
    End If
Wend
'----------------------
End Sub
Con respecto al tamaño, tanto los inputbox como los msgbox tienen un límite. No es posible cambiar de tamaño a un Inputbox. Si necesitas más espacio tendrás que presentarlo en un Userform.
Sdos
Elsa
PD) Podrás ver ejemplos del uso de UF en sección Descargas y Manuales de mi sitio.
http://aplicaexcel.galeon.com/index.htm

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas