Valor momentario con macro vba y botón

Hola, quisiera saber si es posible asignar un valor a una celda, de manera momentaria, mientras se presione un botón en la planilla, es decir, por ej. Que la celda A1 valga 1 mientras se presiona un botón y cuando lo suelto que vuelva a su valor cero inicial.
Desde ya muchas gracias
Respuesta
1
Según dices: "por ej. que la celda A1 valga 1 MIENTRAS SE PRESIONA un botón y cuando lo suelto que vuelva a su valor cero inicial. " Desde código controlas CUANDO PULSAS no MIENTRAS LO PULSAS
Pues la verdad no se para que lo quieres... porque no lo vas a apreciar..
En el botón..
Private Sub CommandButton1_Click()
ActiveSheet.Cells(1,1).Value = "Se ha pulsado el boton"
... resto de código ...
ActiveSheet.Cells(1,1).Value = 0
End Sub
Saludos! Espero que te haya servido, de ser así por favor finaliza la pregunta, sino, preguntame de nuevo.
La aplicación para la cual quiero utilizar esta función es para reemplazar la pantalla de un scada, que viene con un objeto definido como "momentary pus button", de tal modo de escribir un valor mientras se pulsa el botón y deja de escribirlo cuando se suelta. La aplicación graba un valor de proceso sólo cuando se presiona el botón, es decir, saca una foto del estado de las variables, cuando se presiona el botón. Para poder hacerlo desde el excel necesito enviar un valor al controlador, desde el excel, pero por un intervalo corto de tiempo equivalente al tiempo de presionado del botón. Espero haber sido claro para explicar los alcances de esta aplicación.
En realidad creo que sería suficiente con ejecutar una linea de comando al inicio de la macro invocada por el botón, para escribir el valor 1 del tag en cuestión para que tome la foto de los valores, luego una demora de 2 seg. Por ej (supongo que puede ponerse un loop o algo así) y al final escribir el valor cero para que detenga el proceso y queden grabado los valores. Es decir, lo que necesitaría es que me indique cómo puedo establecer una demora dentro de la ejecución de la macro entre una línea y otra.
Gracias
Pues tienes una función que es Ontime que puede hacer eso que necesitas, "parar" la aplicación tanto tiempo como le indiques.
Application.OnTime Now + TimeValue("00:00:02"), "Mi_Funcion"
Sub Mi_Funcion()
EndSub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas