Página 1 de 1

[RESUELTO] Macro para pulsar tecla

Publicado: Mar Jul 16, 2019 5:43 pm
por zferrio
Necesito crear una macro para pulsar una tecla determinada, por ejemplo F4.
Quiero que al abrir un documento se active esa macro.
El problema es que no conozco Basic.
Alguien puede ayudarme?

Re: Macro para pulsar tecla

Publicado: Mar Jul 16, 2019 5:51 pm
por fornelasa
Son dos eventos diferentes:
1) Al pulsar F4
2) Al abrir documento
Por favor da más detalles de la pregunta.
Saludos.

Re: Macro para pulsar tecla

Publicado: Mar Jul 16, 2019 5:57 pm
por zferrio
La segunda frase es sólo para ampliar información.
Lo que necesito es que la macro pulse una tecla.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 12:08 am
por fornelasa
Ojala puedas describir para que deseas hacer eso, en mi opinión es redundar mucho la macro.
¿Que hace F4?
Estando en un archivo abierto de Calc LibreOffice, por ejemplo en la celda A1 de la Hoja1, si pulsamos la tecla F4 nos aparece un cuadro de dialogo que dice:

Código: Seleccionar todo

Información
No se encuentra ninguna referencia a otra celda en las celdas seleccionadas
Obvio, esperamos ver el mismo cuadro de dialogo después de ejecutar estas macros.

Vamos a suponer que estamos en un archivo de Calc llamado PulsarF4.ods

Usando el programa bloc de notas, copia, pega y guarda este script en la ruta correcta y ponle por nombre de archivo pulsarF4.wsf

Código: Seleccionar todo

<package>
   <job id="vbs">
      <script language="VBScript">
      Dim Args
      Dim AppString
      
      Set Args = WScript.Arguments
      AppString = Args(0)
        set WshShell = WScript.CreateObject("WScript.Shell")
        WshShell.AppActivate AppString
        WshShell.SendKeys "{F4}"
       </script>
   </job>
</package>
En un modulo del archivo PulsarF4.ods crea esta macro y después Asignala al evento "Abrir documento", (Menú -- Herramientas -- Personalizar -- Ficha Sucesos -- Seleccionamos Abrir documento -- Pulsar botón Macro -- Doble clic PulsarF4.ods -- Doble clic Standard -- Doble clic Module1 -- Nombre de macro SeleccionarF4 -- Botón Aceptar -- Botón Aceptar)

Código: Seleccionar todo

Sub SeleccionarF4()
   AppString = StarDeskTop.ActiveFrame.Title
   Shell("WScript ""C:\Users\Federico\Downloads\pulsarF4.wsf""" & " " & AppString,False)
End Sub
De lo anterior cambia esta ruta C:\Users\Federico\Downloads\pulsarF4.wsf por tu ruta correcta.


Salva y cierra tu archivo, vuelvelo a abrir. Ahora debemos obtener el mismo resultado de arriba, es decir:

Código: Seleccionar todo

Información
No se encuentra ninguna referencia a otra celda en las celdas seleccionadas
Saludos, Federico.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 6:45 am
por zferrio
Explicaré mi intención.
La tecla F4 es un ejemplo. Podría servir cualquier tecla que no tenga asignada función.
He creado una aplicación que consiste en una base de datos en la que se introducen datos en determinados campos. Esos campos se utilizarán para crear un documento de texto writer cuando así lo necesite el ususario de la aplicación. Hasta aquí está ya creado y funcionando, de manera que el documento creado es una combinación de correspondencia.
De momento, los usuarios deben pulsar la tecla F4, a la que he asignado la función "Editar documentos individuales".
Yo quiero que, al crear ese documento writer nos "fusione", de forma automática, los datos de los campos creados en un documento final, pulsando la tecla F4. Creo que eso se puede hacer creando una macro que nos pulse la tecla determinada.
No conozco ningún otro sistema, pero estoy abierto a posibles alternativas.
La solución de fornelasa aún no la he probado, pero creo que no es lo que deseo hacer.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 9:32 am
por zferrio
He probado la solución aportada por fornelasa y funciona.
El problema es que dependo de un archivo ubicado en un determinado lugar y no siempre va a ser posible tener ese archivo en dicha ruta.
Busco el mismo resultado con una macro que pulse la tecla asignada.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 5:15 pm
por fornelasa
Hola zferrio, a continuación mis comentarios:
1) De inicio tu consulta es bastante corta y no muy entendible.
2) En base al punto 1 se entendió que al abrir un archivo, una macro cualquiera nos pulse un tecla, y precisamente es lo que hace los scripts ya enviados. [Tema resuelto]
3) Después das una explicación (que con todo respeto) solo tu entiendes.
4) Después dices que ni has probado la macro y que no es lo que deseas
La solución de fornelasa aún no la he probado, pero creo que no es lo que deseo hacer.
5) Después dices que si que siempre si funciona pero que no es lo que necesitas
He probado la solución aportada por fornelasa y funciona.
6) Y al final sigues preguntando lo que preguntasté desde un inicio
Busco el mismo resultado con una macro que pulse la tecla asignada.
7) ¿Que debe entenderse por esto:?
El problema es que dependo de un archivo ubicado en un determinado lugar y no siempre va a ser posible tener ese archivo en dicha ruta.
Al final sigo sin entender tu consulta. Ojala alguien más de la comunidad adivine que deseas hacer.

Saludos.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 7:48 pm
por zferrio
Hola fornelasa,
He realizado una consulta para resolver un problema y no deseo entrar en confrontación con nadie.
Lo que necesito es que una macro realice la acción de pulsar una tecla (por ejemplo, F4). Es decir, que cuando se ejecute la macro, se pulse la tecla mencionada.
Tu me has facilitado una solución, que incluye un script, pero no es lo que yo quiero. Quiero precindir del script.
Te agredezco que hayas dedicado tu tiempo a intentar darme una solución pero no es, en esencia, lo que yo solicitaba.

Re: Macro para pulsar tecla

Publicado: Mié Jul 17, 2019 10:32 pm
por mauricio
entiendo que tienes ya realizada una macro que hace ciertas acciones... ¿es correcto?... si es así, no entiendo por que no asignar a cualquier tecla dicha macro, o al abrir documento como mencionas... si no es así, no he entendido lo que tienes y lo que quieres lograr.

Re: Macro para pulsar tecla

Publicado: Jue Jul 18, 2019 6:51 am
por zferrio
Quiero conseguir que al abrir un documento, donde he creado una combinación de correspondencia, de forma automática realice la acción de "Editar documentos individuales".
Para ello, he pensado asignar esa acción a una tecla (F4), y que esa tecla se pulse mediante una macro, que se ejecuta al abrir el documento
He pensado que funcionaría...

Re: Macro para pulsar tecla

Publicado: Jue Jul 18, 2019 5:06 pm
por fornelasa
zferrio escribió:he pensado asignar esa acción a una tecla (F4), y que esa tecla se pulse mediante una macro, que se ejecuta al abrir el documento
zferrio escribió:Lo que necesito es que una macro realice la acción de pulsar una tecla (por ejemplo, F4). Es decir, que cuando se ejecute la macro, se pulse la tecla mencionada.
Que es exactamente lo que hace la macro y el script previamente enviado.
zferrio escribió:He probado la solución aportada por fornelasa y funciona.
zferrio escribió:Quiero precindir del script.
Hasta donde yo sé, es imposible hacerlo de otra manera, al menos no en Basic. Parece que si seguimos con esta idea es forzoso usar el script necesariamente.
Eso nos llevaría al paso siguiente:
fornelasa escribió:7) ¿Que debe entenderse por esto:?
El problema es que dependo de un archivo ubicado en un determinado lugar y no siempre va a ser posible tener ese archivo en dicha ruta.

Re: Macro para pulsar tecla

Publicado: Jue Jul 18, 2019 5:59 pm
por zferrio
Si no te importa, esperaré las aportaciones de otros usuarios, si las hubiese.

Re: Macro para pulsar tecla

Publicado: Jue Jul 18, 2019 7:19 pm
por fornelasa
Si no te importa, esperaré las aportaciones de otros usuarios, si las hubiese.
No, no me importa.
De hecho tu pregunta la aproveché pensando en el beneficio de la comunidad por si a alguien le sirve incluyendote a ti, si no te sirve es igual para mi. Yo no tengo ningún interés en tu proyecto.

Re: Macro para pulsar tecla

Publicado: Vie Jul 19, 2019 7:14 pm
por zferrio
Hola fornelasa,
Mi respuesta anterior era más extensa, pero por algún motivo únicamente se publicó el último párrafo.
Te respondo a tu pregunta sobre porque no me sirve la opción del script.
En la aplicación que he creado, hay más de 300 documentos en los que necesito implementar esta solución.
La aplicación ( y estos documentos afectados) puede estar en diferentes ubicaciones dependiendo de los usuarios.
De esta forma, en ocasiones estará en el disco duro, en otras en un pendrive, en otras en un servidor ..., lo que obligaría a modificar en los más de 300 documentos la ruta del script.
Entenderás que eso no es viable, y por ello necesito que la solución sea que la macro realice la acción que he indicado.
Saludos.

Re: Macro para pulsar tecla

Publicado: Vie Jul 19, 2019 8:22 pm
por fornelasa
zferrio escribió:Mi respuesta anterior era más extensa, pero por algún motivo únicamente se publicó el último párrafo.
Si, es correcto, si la ví, pero como dices tú algo pasó.

Pero tu sabes lo que escribisté y yo lo vi.

En base a lo anterior, te comento:
fornelasa escribió:si no te sirve es igual para mi.
zferrio escribió:esperaré las aportaciones de otros usuarios, si las hubiese.

Re: Macro para pulsar tecla

Publicado: Vie Jul 19, 2019 8:34 pm
por zferrio
Bien, sólo quería dejar claro el motivo por el cual no me sirve la solución que tu aportas.

Re: Macro para pulsar tecla

Publicado: Mar Sep 03, 2019 4:58 pm
por mauricio
zferrio escribió:Quiero conseguir que al abrir un documento, donde he creado una combinación de correspondencia, de forma automática realice la acción de "Editar documentos individuales".
El siguiente código, asignado al evento abrir del documento, debería de funcionar:

Código: Seleccionar todo

Dim document As Object
Dim dispatcher As Object

document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:MailMergeCreateDocuments", "", 0, Array())

Re: Macro para pulsar tecla

Publicado: Mar Sep 03, 2019 6:20 pm
por zferrio
Eso es!!! Funciona!!! SI SE PUEDE!
Muchas gracias, Mauricio. Eternamente agradecido.
Saludos

Re: Macro para pulsar tecla

Publicado: Mar Sep 03, 2019 6:44 pm
por mauricio
No olvides marcar correctamente como [RESUELTO]

Re: Macro para pulsar tecla

Publicado: Mar Sep 03, 2019 6:59 pm
por zferrio
lo siento, no encuentro dónde marcar para RESUELTO

Re: Macro para pulsar tecla

Publicado: Mar Sep 03, 2019 7:23 pm
por mauricio