Programar eventos con teclas F1, F2.

Tengo un userform1 con varios ComboBox que he programado para cargar datos desde una hoja de Excel de diseño de tablas, hasta ahora me va bien.

Quiero programar un evento cuando el foco esta en un ComboBox presiono la tecla F1 me salque un listbox para seleccionar datos y capturar en el ComboBox.

Respuesta
1
Private Sub ComboBox1_KeyPress(ByVal KeyAscii As _ MSForms.ReturnInteger)
    If KeyAscii = vbKeyF1 Then
        'Aquí haces tu código
        'Te sugiero que hagas otro userform que contenga tu ListBox y lo muestres así:
        UserForm2.Show
    End If
End Sub

El código anexado es un evento que se ejecuta cuando se presiona F1 y ComboBox1 tiene el foco.

Si te fue de ayuda no olvides valorar.

Muchas gracias por tu respuesta, estimado Luis

he probado el código que me enviaste y no sale el UserForm2 cuando presiono F1 para seleccionar datos, que me quiere decir con 'Aquí haces tu código, seria mucho pedirle que me envié en Excel programado por favor.

Gracias

1. En tus ComboBox tienes los datos de algunas columnas de Excel, ¿no?

2. Al presionar F1, quieres un listbox que contenga:

-Checkboxes para marcar/desmarcar los datos ya existentes en dicho ComboBox

-Una lista donde elijas qué tabla mostrar

-Otra cosa (sé específico)

3. ¿Qué quieres hacer al presionarse F2?

Responde eso para hacer un código que te pueda ayudar.

  1. Claro en mi combobox tengo datos de una tabla (Nivel) creado en Excel como lista, en el ComboBox está mostrando bien.
  2. Al presionar F1, quiero que salga automáticamente un ListBox que contenga los datos de la tabla (Nivel) creado en Excel, para seleccionar un dato de la lista del ListBox haciendo “enter” y esto quede grabado en el ComboBox para luego guardar los datos

- El formulario donde está el Listbox debe contener un TextBox1 para buscar los datos del ListBox automáticamente.

Tener dos opciones para trabajar con la lista de ComboBox (pocos datos) y con la lista del ListBox, (datos son bastante grandes).

agradecido por el apoyo.

Al iniciar el formulario se muestra esto:

Al presionar F1 (y si el ComboBox tiene foco) se abre el ListBox:

Con el TextBox puedes filtrar la búsqueda. Seleccionas el elemento y presionas el botón o Enter para cerrar el ListBox.

Adjunto el libro:

Libro1.xlsm

Si te fue de ayuda no olvides puntuar.

Muy bien esta detallada la explicación.

solo para terminar en tema,  Al iniciar el formulario no se debe mostrar ningún numero debe estar en blanco

Muchas gracias por sus prontas respuestas.

Por otra parte, he replicado el ejemplo en otros ComboBox, al seleccionar un dato del ListBox después acepto, me agrega al ComboBox el dato de la ultima fila del ListBox, algo estaré haciendo mal???

Espero su gran ayuda, para terminar mi proyectito.

Para mostrar en blanco el ComboBox al iniciar borra esta línea o ponla como comentario del userform inicial:

ComboBox1. ListIndex = 0

La manera más sencilla (a nivel de código) de ajustar el código a más de un ComboBox es hacer varios UserForm que contengan.

Tienes que poner correctamente el rango de cada ComboBox en el UF principal.

En cada UF que contienen los ListBox debes reemplazar cada "ComboBox1" por su debido número de ComboBox y también poner debidamente el rango de la lista.

Buen día, Luis

He intentado, envió el archivo, para más detalle.

Libro1.xlsm

Libro1-v2.xlsm

Recuerda puntuar.

Eres un gran experto Luis, en los macros y gracias por eso, espero no sea mucho abuso pedirle como ultimo apoyo, cuando presiono F1 selecciono los datos del ListBox al ComboBox perfecto "Pero por error presiono nuevamente el F1 en la misma ComboBox" debo cerrar el UF(listbox) con la tecla ESC para no seleccionar nuevamente los datos, que código debo usar y en donde colocarlos.

Gracias por su alcance de su conocimiento.

Estimado,

Tengo una inquietud para realizar.

Los ComboBox1 y ComboBox2 deben estar deshabilitados para cualquier escritura dentro de ella solo aceptando la introducción de datos mediante la  lista desplegable y el ListBox, y el TextBox1 debe decir automáticamente por defecto la palabra ALMACEN.

Si deseo introducir datos ComboBox1 y ComboBox2 escribiendo con el teclado, ya que no existe en la lista desplegable y el ListBox, debo hacer check en el CheckBox1 esto me debe deshabilitar los dos ComboBoxs para escribir y el TextBox1 debe mostrar automáticamente la palabra ALMACEN EXTERNO.

Adjunto Proyecto

Libro1_v2

Hermano, gracias por su tiempo y apoyo.

Libro2_v3.xlsm

No respondo más aquí, puedes hacer otra consulta y con gusto responderé.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas