[Risolto]Macro con "uno:copy" non copia a causa del pulsante

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Fenderissimo
Messaggi: 5
Iscritto il: lunedì 4 dicembre 2017, 18:09

[Risolto]Macro con "uno:copy" non copia a causa del pulsante

Messaggio da Fenderissimo »

Ciao a tutti,
ho creato una macro che fa questo:
seleziona A1:M1
copia

Se eseguo la macro tramite "strumenti - macro - esegui macro", la macro funziona e copia il contenuto delle celle.

Il problema c'è se associo la macro al pulsante ed eseguo la macro premendo il pulsante.
Quando premo sul pulsante, vengono selezionate le celle, ma il problema è che resta selezionato anche il pulsante appena cliccato. Di conseguenza il comando ".uno:Copy" della macro non copia il contenuto delle celle.

Come posso risolvere?

La macro creata con il "Registra macro" è questa:

Codice: Seleziona tutto

sub Copia_A_M
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$1:$M$1"

dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())


end sub
Ultima modifica di Fenderissimo il mercoledì 15 settembre 2021, 9:48, modificato 1 volta in totale.
LibreOffice 3.5.4.2 su Windows 7
Openoffice 3.4.1 su Windows 10
marcocurreli
Messaggi: 104
Iscritto il: sabato 10 aprile 2021, 13:28

Re: Macro con "uno:copy" non copia a causa del pulsante

Messaggio da marcocurreli »

Non sono un esperto di macro (anche se alcune cose le ho imparate, molte altre no).
Comunque, per chiarire il problema:
dopo "esegui macro", la macro termina o rimane in esecuzione? (Lo vedi dall'icona nella barra in alto del gestore di macro.)
Stessa domanda se lanci la macro dal pulsante.
Il pulsante l'hai associato all'evento "Esegui azione"?
LibreOffice 7.3.0 -- Linux 5.16.4-arch
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Macro con "uno:copy" non copia a causa del pulsante

Messaggio da patel »

Se hai intenzione di usare le macro lascia perdere il registratore che produce codice difficilmente comprensibile e riutilizzabile, leggi qui http://www.pitonyak.org/oo.php
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: Macro con "uno:copy" non copia a causa del pulsante

Messaggio da lucky63 »

Fenderissimo ha scritto:Il problema c'è se associo la macro al pulsante ed eseguo la macro premendo il pulsante.
Nel caso specifico è necessario impostare la voce:
FocusPulsanteSuNo.png
“Assegna punto focale …” su NO
Tra le opzioni generali delle proprietà del pulsante.
.
Allegati
Test - Macro - PulsanteCopiaA1M1Funzionante.ods
(13.76 KiB) Scaricato 65 volte
Fenderissimo
Messaggi: 5
Iscritto il: lunedì 4 dicembre 2017, 18:09

Re: [Risolto]Macro con "uno:copy" non copia a causa del puls

Messaggio da Fenderissimo »

Risolto con "fuoco": NO. Grazie! :super:
dopo "esegui macro", la macro termina o rimane in esecuzione?
Si, la macro termina l'esecuzione
Se hai intenzione di usare le macro lascia perdere il registratore che produce codice difficilmente comprensibile e riutilizzabile
Grazie per link, lo studierò.
Mi sono abituato a lavorare con il registra macro visto che ho sempre creato macro che dovevano eseguire dei comandi registrabili. Poi sono riuscito a sempre a modificare le macro proprio perchè i comandi sono semplici.
LibreOffice 3.5.4.2 su Windows 7
Openoffice 3.4.1 su Windows 10
Rispondi