¿Cómo activar el botón cancelar del InputBox en excel?

Tengo una macro en excel que se inicia en automático.
En la parte del código Private Sub UserForm_Initialize(), tengo la función inputbox que es donde el usuario teclea su nombre y accede a la macro con el botón aceptar hasta ahí no hay problema.

Pero lo que quiero es cuando le de en el botón cancelar del inputbox cierre la macro o la termine y cuando no teclean nada en el inputbox y le dan aceptar en el botón mande un mensaje que "teclee un nombre para acceder a la macro".

Y el código que tengo aquí manda el mesaje, pero también inicia la macro.


Private Sub UserForm_Initialize()
  Dim nombre As String
      nombre = InputBox("INGRESE SU NOMBRE", "CAPTURA FOLIOS.", "")
      If nombre = "" Then

              MsgBox ("Teclee un Nombre")
      else

              userform1.show
End Sub

1 respuesta

Respuesta
3

Hay que distinguir entre la cadena vacía, que es devuelta por la pulsación del botón de Cancelar y cuando el contenido del InputBox es blanco y pulsamos el botón de Aceptar.

Para hacerlo necesitamos de una función Api como es StrPtr

Quedaría así:

Private Sub UserForm_Initialize()
' El bucle es para que pida un nombre mientras no introduzca un nombre o pulse Cancelar'
Do While nombre = ""
    nombre = InputBox("INGRESE SU NOMBRE", "CAPTURA FOLIOS.", "")
    If StrPtr(nombre) = vbEmpty Then
         End 'Ha presionado Cancelar y finaliza'
       Else
         If nombre = "" Then ' Ha presionado Aceptar y el nombre está vacio'
                    MsgBox ("Teclee un Nombre")
               Else ' Ha escrito algo y pulsado aceptar. Mostramos el formulario'
                    UserForm1.Show
                    End
         End If
    End If
Loop
End Sub

Si quieres ver cómo funcionan este tipo de funciones API, ve aquí:

http://support.microsoft.com/kb/199824/es 

Si te ha valido la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas