Unloadme y keypreview

En EXcel 2007 no hay manera de cerrar directamente el userform con el escape..
Si aplico:
Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 27 Then
Unload Me
End If
End Sub
A un combobox o texbox o comandbutom lo hará solo si estoy posicionado en ellos.
Lo cual me acarrea hacer múltiples entradas...
No se puede aplicar directamente a la userform:
Comentáis en algunos reportes o consultasbque se hace activando el keypreview pero en excel 2007 no esta... O no lo trae... O no consigo encontrarlo, lo he intentado con keyup, keydown, keypress... Y no doy con ello...
Se me esta pasado algo..

1 Respuesta

Respuesta
1
'En el editor de codigo del objeto WorkBook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Libera la tecla ESC
Application.OnKey "{ESC}", ""
End Sub
Private Sub Workbook_Open()
'Programa la tecla ESC para que ejecute tu macro
Application.OnKey "{ESC}", "Cerrar_Formulario"
End Sub
'En un modulo
Public Sub Cerrar_Formulario()
Application.SendKeys "%{F4}"
End Sub
Si usas windows vista Sendkeys no funciona y debes usar esto:
http://www.todoexpertos.com/categorias/ciencias-e-ingenieria/topografia/respuestas/1838892/sendkeys-no-me-funcionan-con-vista
Veo por donde vas pero no me funciona...
Intruzco la dos primeras private en la promacion de la forma a la que tu llamas workbook y también lo he intentado introduciendolas en la programación de Thisworbook ante la duda...
la public sub la meto en un modulo cualquiera a continuacion de la sub de llamada a la forma porejemplo...
alguna aclaracion porfavor
Recuerda que como la asignación de la tecla escape se hace en el evento Open del objeto workbook debes hacer los cambios, guardar y volver a abrir para que el código se ejecute. Añade Stop al inicio del código de Workbook_Open para que puedas depurar y asegurarte de que si se esta haciendo la asignación de tecla. Cambia Application. SendKeys "%{F4}" por Application. SendKeys "%{F4}" , True. Quizás de esta manera funcione. Recuerda revisar el link que agregue al mensaje anterior si usas W Vista.
¿Por qué no programas un botón para cerrar? ¿Es más fácil o porque no explicas a tus usuarios que opriman Alt+F4 en lugar de ESC? Esto te ahorraría problemas de programación. De todas maneras si necesitas algo más escribe

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas