Fai la tua domanda
0

Creazione Macro

chiesto il 2019-11-09 20:21:28 +0100

Immagine gravatar per TheGryphon

Buonasera. Una domanda un po' complessa.

Con una vecchia edizione di Excel mi ricordo che potevo creare un bottone con una macro annessa che, premendolo, mi permetteva di ordinare di dati in una lista. Non so se con LibreOffice si può fare, per questo vi chiedo un aiuto, per favore. Grazie mille

modifica retag flag offensive close merge delete

3 Answers

1

risposto il 2019-11-10 15:01:04 +0100

Con questa macro (generata con il registratore di macro) associata all'evento Approva l'azione di un pulsante, viene ordinato un elenco nell'intervallo A1:A15:

Se la mia riposta ti ha aiutato, votala con ✔ (qui a sinistra)

sub Main
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:$A$15"

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

rem ----------------------------------------------------------------------
dim args2(9) as new com.sun.star.beans.PropertyValue
args2(0).Name = "ByRows"
args2(0).Value = true
args2(1).Name = "HasHeader"
args2(1).Value = false
args2(2).Name = "CaseSensitive"
args2(2).Value = false
args2(3).Name = "NaturalSort"
args2(3).Value = false
args2(4).Name = "IncludeAttribs"
args2(4).Value = true
args2(5).Name = "UserDefIndex"
args2(5).Value = 0
args2(6).Name = "Col1"
args2(6).Value = 1
args2(7).Name = "Ascending1"
args2(7).Value = true
args2(8).Name = "IncludeComments"
args2(8).Value = false
args2(9).Name = "IncludeImages"
args2(9).Value = true

dispatcher.executeDispatch(document, ".uno:DataSort", "", 0, args2())


end sub
modifica flag offensive delete link more

Commenti

Grazie mille, penso funzioni. Ma il mio ordinamento però dovrebbe essere attuato con una macro che ordinasse una serie di valori, in una tabella stile classifica, diciamo dalla cella A1 alla I12, in cui i valori da ordinare sono quelli nella colonna I1-I12. Ovviamente, trattandosi di una classifica, ordinerebbe i valori in quel range di colonne, mantenendo le righe corrispondenti nell'arco dell'ordinamento.

Inoltre, si assegna la macro a, diciamo una forma ma mi chiedo se ci fosse la possibilità di poter trasformare quella forma con macro assegnata, in un pulsante proprio. Grazie mille comunque

Immagine gravatar per TheGryphon TheGryphon ( 2019-11-11 14:57:58 +0100 )modifica
0

risposto il 2019-11-12 14:30:07 +0100

Immagine gravatar per ptux

Se non ho capito male si tratta di ordinare un'area estesa. In LO Calc questo è possibile anche senza usare le macro: basta usare il pulsante per l'ordinamento crescente (o decrescente) della Barra degli strumenti Standard.

Puoi quindi selezionare l'area I1-I12 e premere il pulsante in questione, quindi optare per l'ordinamento dell'area estesa. Supponendo una tabella con
Colonna A:
Pippo
Mario
Giovanni
Colonna B:
10
15
5

Selezionando la colonna B e usando il tasto di ordinamento (opzione sezione estesa) si avrà:
Colonna A
Giovanni
Pippo
Mario
Colonna B
5
10
15

modifica flag offensive delete link more
0

risposto il 2019-11-11 15:49:31 +0100

Immagine gravatar per TheGryphon

RISOLTO. Non avevo attivato la Registrazione Macro ed adesso ho risolto. Grazie mille a tutti

modifica flag offensive delete link more
Login/Signup to Answer

Question Tools

1 follower

Stats

Chieste: 2019-11-09 20:21:28 +0100

Seen: 25 times

Last updated: Nov 12