Hai aperto la discussione dicendo che
amax ha scritto:
quindi se salvo il file dandogli un nome diverso la macro non funziona.
Nella mia prima risposta (
vedi qui) ti ho spiegato come inserire il comando Thiscomponent.Title
amax ha scritto:Purtroppo la soluzione di unlucky83 non ha funzionato
Questa tua risposta mi ha sorpreso. Poi dopo che ho risposto per la seconda volta ci hai riprovato
amax ha scritto:Grazie, ma secondo te come posso integrarlo al codice che ho io?
Ci ho provato, ma non ne sono stato in grado, dovrebbe sostituire il parametro "Senza nome 1" alla riga
Che posso dirti...io ho fatto proprio questa sostituzione
Codice: 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 ----------------------------------------------------------------------
dim args1(2) as new com.sun.star.beans.PropertyValue
args1(0).Name = "DocName"
args1(0).Value = ThisComponent.Title
args1(1).Name = "Index"
args1(1).Value = 4
args1(2).Name = "Copy"
args1(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args1())
rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Nr"
args2(0).Value = 3
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args2())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "ToPoint"
args3(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$1:$F$20"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "Nr"
args6(0).Value = 4
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args6())
rem ----------------------------------------------------------------------
dim args7(5) as new com.sun.star.beans.PropertyValue
args7(0).Name = "Flags"
args7(0).Value = "SVDT"
args7(1).Name = "FormulaCommand"
args7(1).Value = 0
args7(2).Name = "SkipEmptyCells"
args7(2).Value = false
args7(3).Name = "Transpose"
args7(3).Value = false
args7(4).Name = "AsLink"
args7(4).Value = false
args7(5).Name = "MoveMode"
args7(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args7())
rem ----------------------------------------------------------------------
dim args8(0) as new com.sun.star.beans.PropertyValue
args8(0).Name = "ToPoint"
args8(0).Value = "$A$1"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args8())
end sub
L'ho messa nel tuo allegato ods e ho rinominato il file un paio di volte, avviando la macro ogni volta e non mi da nessun errore.
Siccome la sostituzione del codice non è così complicata non vedo dove sia il problema.
Per la cronaca, la risposta a quest'altra domanda:
Se inserisco il nome del file in una cella, come posso cambiare "Senza nome 1" in tipo "Foglio.A1" (la dove ho inserito il nome del file)?
è sostituire
con
Codice: Seleziona tutto
args1(0).Value = ThisComponent.Sheets.getbyname("Foglio").getcellrangebyname("A1").string