Fai la tua domanda
0

[Risolto] Macro per creare nuovo foglio con la copia senza formule

chiesto il 2020-05-07 19:32:19 +0100

Immagine gravatar per AMax

updated 2020-05-11 08:13:24 +0100

Salve a tutti, ho il mio file per le fatture e vorrei creare una macro che crei un nuovo foglio e copi i dati senza formule. Ho provato a registrare una macro e funziona, l'unico problema è che nella fattura ho un logo immagine e la macro copia tutto tranne l'immagine anche se è vistata la voce oggetti.

descrizione immagine

Grazie

modifica retag flag offensive close merge delete

3 Answers

1

risposto il 2020-05-07 22:52:35 +0100

Immagine gravatar per akurery

Selezioni il logo, fai clic con il tasto destro e seleziona Ancoraggio - alla cella.
Poi prova a fare il copia/incolla con la tua macro.

modifica flag offensive delete link more
0

risposto il 2020-05-11 12:29:45 +0100

modifica flag offensive delete link more
0

risposto il 2020-05-08 09:07:26 +0100

Immagine gravatar per AMax

ho ancorato l'immagine ed ho fatto la copia delle singole colonne, ma niente, l'immagine non viene riportata

    sub CopiaSelezioneColonne
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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

rem ----------------------------------------------------------------------
dim args2(1) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Name"
args2(0).Value = "Foglio22"
args2(1).Name = "Index"
args2(1).Value = 4

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

rem ----------------------------------------------------------------------
dim args3(5) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Flags"
args3(0).Value = "SVDT"
args3(1).Name = "FormulaCommand"
args3(1).Value = 0
args3(2).Name = "SkipEmptyCells"
args3(2).Value = false
args3(3).Name = "Transpose"
args3(3).Value = false
args3(4).Name = "AsLink"
args3(4).Value = false
args3(5).Name = "MoveMode"
args3(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args3())


end sub

Mentre questo è facendo la copia di tutto il foglio cliccando sul primo quadratino in alto 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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

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

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Name"
args3(0).Value = "Foglio22"
args3(1).Name = "Index"
args3(1).Value = 4

dispatcher.executeDispatch(document, ".uno:Insert", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(5) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "SVDT"
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"
args4(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())


end sub

Mentre questo è con il comando seleziona tutto

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 ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())

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

rem ----------------------------------------------------------------------
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Name"
args3(0).Value = "Foglio22"
args3(1).Name = "Index"
args3(1).Value = 4

dispatcher.executeDispatch(document, ".uno:Insert", "", 0, args3())

rem ----------------------------------------------------------------------
dim args4(5) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "SVDT"
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"
args4(5).Value = 4

dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())


end sub
modifica flag offensive delete link more

Commenti

1

Quando registri la macro, invece di inserire un nuovo foglio e copiare il contenuto di quello precedente, prova a fare una cosa diversa.
Fai clic col tasto destro del mouse sulla linguetta con il nome del foglio e seleziona Sposta o copia foglio, poi nella finestra che si apre metti il segno di spunta su Copia.

Immagine gravatar per akurery akurery ( 2020-05-08 11:48:24 +0100 )modifica

Come scrivevo nel primo post non voglio copiare il foglio tal quale ma copiarlo senza formule ed ecco perché uso "incolla speciale"

Immagine gravatar per AMax AMax ( 2020-05-08 19:10:41 +0100 )modifica

Potresti creare la copia tale e quale dell'intero foglio e poi sul nuovo foglio fare un copia e incolla speciale su se stesso con le opzioni che servono a te.

Immagine gravatar per akurery akurery ( 2020-05-08 20:58:37 +0100 )modifica

Complesso il giro da fare, ma almeno funziona.

Grazie

Immagine gravatar per AMax AMax ( 2020-05-11 08:13:08 +0100 )modifica
Login/Signup to Answer

Question Tools

1 follower

Stats

Chieste: 2020-05-07 19:32:19 +0100

Seen: 114 times

Last updated: May 11