
' otbenemos el estado (pulsada o no) de la tecla "pasada" como argumento "vKey" '
Private Declare Function TeclaPulsada _
Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
' usamos la llamada anterior para preguntar por el estado de 2 teclas (Shift y Control) '
Private Function Teclas() As Integer
Dim Pulsadas As Integer, May As Boolean, Ctrl As Boolean
May = (TeclaPulsada(vbKeyShift) And &H8000)
Ctrl = (TeclaPulsada(vbKeyControl) And &H8000)
Pulsadas = Pulsadas - May
Pulsadas = Pulsadas - (Ctrl * 2)
Teclas = Pulsadas
End Function
' la siguiente macro de prueba te dira cual(es) tecla(s) presionas al momento de ejecutarla '
Sub ProbandoTeclas()
Dim CualTecla As String
Select Case Teclas
Case 0: CualTecla = "más vale solo... que mal acompañado."
Case 1: CualTecla = "pulsando la tecla Mayúsculas."
Case 2: CualTecla = "pulsando la tecla Control."
Case 3: CualTecla = "pulsando las teclas Mayúsculas y Control"
End Select
MsgBox "Este código se está ejecutando ..." & vbCr & CualTecla
End Sub


... lo que busco es más simple. Tengo dos macros y un cuadro combinado que va desde el 1 al 7 , necesito que si en una celda por ejm AG9 aparece el 4 siga una macro y otro número la otra macro.
Sub Cual_Macro()
If Worksheets("control cm").Range("ag9") = 4 _
Then Transferir_Datos_UVA _
Else Transferir_Datos_Control
End Sub


Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados