Capturar pulsación de tecla.

20/10/2006 - 09:30 por César | Informe spam
Hola a todos.

¿Cómo puedo controlar dentro del siguiente InputBox si está pulsada la tecla
Mayúscula?

Do
CuantosDecimales = Application.InputBox("¿Cuantos decimales?",
"NÚMERO DE DECIMALES (<=6).", 0, , , , , 3)
Loop While CuantosDecimales < 0 Or CuantosDecimales > 6

Gracias anticipadas.

Saludos.

César González.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
20/10/2006 - 18:01 | Informe spam
hola, César !

Como puedo controlar dentro del siguiente InputBox si esta pulsada la tecla Mayuscula?
Do
CuantosDecimales = Application.InputBox("Cuantos decimales?", "NUMERO DE DECIMALES (<=6).", 0, , , , , 3)
Loop While CuantosDecimales < 0 Or CuantosDecimales > 6



1) el ultimo argumento que usas [3] es la combinacion del tipo de datos 'esperado' como entrada en el inputbox de:
1 = numeros
2 = textos
3 = numero o texto [la suma de 1 + 2] :))

2) si el caso es que el inputbox 'requiere' que la entrada de datos sea 'exclusivamente' numeros...
solo modifica el ultimo argumento de:-> 3 a:-> 1
creo que no es necesario 'controlar/detectar/...' si esta pulsada [o no] la tecla {mayusc} -?-

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.
Respuesta Responder a este mensaje
#2 César
20/10/2006 - 18:56 | Informe spam
Héctor.

Gracias por tu respuesta.

Efectivamente el tres debe ser un uno, pero aun así necesito controlar si
está la mayúscula pulsada, para decidir mas adelante con un 'if' o un
'Select'.

¿Alguna idea?

Saludos

César.

"Héctor Miguel" wrote:

hola, César !

> Como puedo controlar dentro del siguiente InputBox si esta pulsada la tecla Mayuscula?
> Do
> CuantosDecimales = Application.InputBox("Cuantos decimales?", "NUMERO DE DECIMALES (<=6).", 0, , , , , 3)
> Loop While CuantosDecimales < 0 Or CuantosDecimales > 6

1) el ultimo argumento que usas [3] es la combinacion del tipo de datos 'esperado' como entrada en el inputbox de:
1 = numeros
2 = textos
3 = numero o texto [la suma de 1 + 2] :))

2) si el caso es que el inputbox 'requiere' que la entrada de datos sea 'exclusivamente' numeros...
solo modifica el ultimo argumento de:-> 3 a:-> 1
creo que no es necesario 'controlar/detectar/...' si esta pulsada [o no] la tecla {mayusc} -?-

comentas [si hubiera] algun detalle adicional ?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
20/10/2006 - 19:25 | Informe spam
hola, César !

... aun asi necesito controlar si esta la mayuscula pulsada, para decidir mas adelante con un 'if' o un 'Select'...



puedes hacer una llamada a las API's de windows y 'consultar' [en cada 'momento'] si {mayusc} esta pulsada [o no]
[p.e.] - desde la llamada a la macro... al responder el usuario a un msgbox/inputbox/userform/... :D

corre algunas pruebas con el siguiente codigo...

Private Declare Function MonitorDeTeclas _
Lib "User32" Alias "GetAsyncKeyState" _
(ByVal Tecla As Long) As Integer
Private Function Mayusc() As Boolean
Mayusc = (MonitorDeTeclas(vbKeyShift) And &H8000)
End Function
Sub Probando_teclas()
Dim CuantosDecimales As Byte
If Mayusc Then MsgBox "La macro se ha lanzado con {Mayusc} pulsada..."
Do
CuantosDecimales = Application.InputBox("Minimo = 0" & vbCr & "Maximo = 6", "Cuantos decimales?", 0, , , , , 1)
Loop While CuantosDecimales < 0 Or CuantosDecimales > 6
If Mayusc Then MsgBox "Los decimales se entraron con {Mayucs} pulsada..."
MsgBox "Las decimales solicitadas son: " & CuantosDecimales
End Sub

saludos,
hector.
Respuesta Responder a este mensaje
#4 César
20/10/2006 - 19:41 | Informe spam
Héctor.

Gracias de nuevo por tu interés.

Ya el lunes en el trabajo lo pruebo y te cuento.

Saludos

César.

"Héctor Miguel" wrote:

hola, César !

> ... aun asi necesito controlar si esta la mayuscula pulsada, para decidir mas adelante con un 'if' o un 'Select'...

puedes hacer una llamada a las API's de windows y 'consultar' [en cada 'momento'] si {mayusc} esta pulsada [o no]
[p.e.] - desde la llamada a la macro... al responder el usuario a un msgbox/inputbox/userform/... :D

corre algunas pruebas con el siguiente codigo...

Private Declare Function MonitorDeTeclas _
Lib "User32" Alias "GetAsyncKeyState" _
(ByVal Tecla As Long) As Integer
Private Function Mayusc() As Boolean
Mayusc = (MonitorDeTeclas(vbKeyShift) And &H8000)
End Function
Sub Probando_teclas()
Dim CuantosDecimales As Byte
If Mayusc Then MsgBox "La macro se ha lanzado con {Mayusc} pulsada..."
Do
CuantosDecimales = Application.InputBox("Minimo = 0" & vbCr & "Maximo = 6", "Cuantos decimales?", 0, , , , , 1)
Loop While CuantosDecimales < 0 Or CuantosDecimales > 6
If Mayusc Then MsgBox "Los decimales se entraron con {Mayucs} pulsada..."
MsgBox "Las decimales solicitadas son: " & CuantosDecimales
End Sub

saludos,
hector.



Respuesta Responder a este mensaje
#5 César
23/10/2006 - 15:27 | Informe spam
Hola a todos.

Al final, guiándome con la información de Héctor, encontré la solución en
este enlace.

http://www.awprofessional.com/artic...2&rl=1

Gracias.

Saludos.

César" wrote:

Hola a todos.

¿Cómo puedo controlar dentro del siguiente InputBox si está pulsada la tecla
Mayúscula?

Do
CuantosDecimales = Application.InputBox("¿Cuantos decimales?",
"NÚMERO DE DECIMALES (<=6).", 0, , , , , 3)
Loop While CuantosDecimales < 0 Or CuantosDecimales > 6

Gracias anticipadas.

Saludos.

César González.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida