Ejecutar una macro de Excel con la tecla Enter

Resuelto
Splity -  
 Splity -
Hola a todos,
Hace un tiempo que navego por los foros pero no encuentro respuesta a mi problema, que es el siguiente:

Escribí una macro VBA para realizar una búsqueda en una tabla. El usuario introduce sus 6 criterios en 6 celdas definidas y luego inicia la búsqueda con un botón.
Paralelamente al botón, me gustaría poder ejecutar la macro (que ya existe y funciona) con la tecla Enter únicamente si una de las celdas de entrada está activa.

Aquí tienes dos de mis intentos, que no funcionan...

Private Sub Worksheet_Change(ByVal target As Range)
If KeyAscii = "13" Then
macrorecherche
End If
End Sub

Private Sub Worksheet_Change(ByVal target As Range)
If ActiveCell.Range("A13") = True And Chr$(13) = True Then
macrorecherche
End If
End Sub

¡Gracias por vuestra ayuda!
Configuración: Windows XP Internet Explorer 6.0

7 respuestas

  1. gbinforme Mensajes publicados 14930 Fecha de registro   Estado Colaborador Última intervención   4 744
     
    hola

    Para que funcione basta hacer que se ingrese en textos en las casillas insertadas en las celdas afectadas.
    --

    Siempre zen
    0
  2. Splity
     
    ok, pero ¿cómo se hace para insertar un textbox o un listbox en una celda?
    0
  3. gbinforme Mensajes publicados 14930 Fecha de registro   Estado Colaborador Última intervención   4 744
     
    hola

    Seleccionas el cuadro de texto en la “caja de herramientas de control”, presionas alt y haces clic deslizándote sobre la celda elegida y tu cuadro de texto toma el tamaño de tu celda.

    Luego utilizas la función cambiar de tu cuadro de texto para lanzar tu búsqueda.
    --

    Siempre zen
    0
  4. Splity
     
    ok, gracias por los textbox, ¡la zona de entrada parece más presentable!

    Por otro lado, ya había intentado validar con la tecla "Enter" en los textbox, pero eso tampoco funcionaba. Aquí está el código que encontré en otro foro y que usé al insertarlo en mi página que contiene los textbox.

    Private Sub tbfamille_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    KeyAscii = Asc(UCase(Chr(KeyAscii)))

    If KeyAscii = "15" Then
    macrorecherche
    End If

    End Sub

    ¿Alguien podría decirme qué es lo que no funciona? qué debería cambiar?

    ¡Gracias a todos y gracias a ti gbinforme!
    0
  5. gilou
     
    hola
    no sé mucho pero intento por ver si es posible reemplazar worksheet_change por worksheetselection_change
    0
  6. gbinforme Mensajes publicados 14930 Fecha de registro   Estado Colaborador Última intervención   4 744
     
    hola

    ¿Alguien podría decirme qué es lo que no va? qué debería cambiar?


    ¡Basta con mirar la ayuda de Excel!
    Un evento KeyPress puede desencadenarse cuando se pulsa cualquiera de las siguientes teclas: Cualquier carácter imprimible del teclado. CTRL asociado a un carácter del alfabeto estándar. CTRL asociado a un carácter especial. ESPACIO ESCAPE. Un evento KeyPress no se desencadena cuando el usuario pulsa una de las siguientes teclas: TAB. ENTRADA. Una tecla de dirección. Una tecla que mueve el foco de un control a otro. 

    Entonces ctrl + entrada y el código es 10 y no 15.
    --

    Siempre zen
    0
  7. Splity
     
    Significa que no es posible iniciar una macro desde un textbox simplemente pulsando la tecla Enter?

    Quería añadir esta funcionalidad porque es intuitiva para los usuarios y evita tener que hacer clic en el botón "Buscar".

    Si es así, pues nada, pero gracias a todos por vuestra ayuda y ¡felicidades por este sitio!
    0