Sub Input_Captura()
Do
If IsEmpty(ActiveCell) Then
ActiveCell.Value = InputBox("Introduzca su datos")
End If
ActiveCell.Offset(0, 1).Select
Loop Until ActiveCell.Value > 0
' se para hasta que encuentra una celda ocupada
Selection.End(xlToLeft).Select
ActiveCell.Offset(1, 0).Select
End Sub
si el usuario pulsa {esc} o el boton de cancelar o la [X] del titulo de la funcion InputBox (vba)
la funcion devuelve una cadena de longitud cero (0) -> "" (incluso si pulsa en aceptar pero no hay datos en el inputbox)
prueba pasando la funcion a una variable y luego compruebas si la variable indica la cancelacion del usuario (p.e.)
Datos = InputBox("introduzca sus datos ...")
If Datos = "" Then
MsgBox "Operacion cancelada por el usuario ..."
Else
MsgBox "Aqui continuan las acciones ..."
End If
saludos,
hector.
__ OP __
> Tengo el siguiente codigo que ejecuta una captura con un control Inputbox y lo realiza hasta encontrar una celda ocupada:
> en teoria funciona pero quisiera me ayudaran, para que al pulsar el boton cancelar del inputbox
> retrocediera una celda a izquierda, la verdad no puedo controlar el boton cancelar del inputbox.
Hola Hector :
Muchas gracias por tu rapida respuesta, he probdo el codigo que
enviaste y funciona al perfeccion.
Mil gracias.
Saludos