Paolo Mantovani ha scritto:
Ciao Bart,

Ciao  :-)

La frase "spostarmi dal file "attivo" ad un'altro già APERTO" è un po nebbiosa...

Servirebbe un po di codice (una roba minima) per rendersi conto di come ottieni le varie istanze dei documenti, e soprattutto in modo da avere qualche punto di riferimento e non dover partire da troppo indietro

Eviterei il codice (ma visto che vuoi farti del male te lo mando...) ma potrebbe essere fuorviante rispetto ad una soluzione ottimale...

Il problema è questo:

Io sto lavorando sul foglio elettronico di una contabilità lavori (questo file si chiama "File_di contabilità.XX.ods") e mi accorgo che devo aggiungere un prezzo.

Allora vado in giro per il mio HD a cercare un prezzario adatto (la sola regione Piemonte ne ha 17...). Trovo il prezziario (ovviamente li ho già adattati in .ods per i nostri scopi) e la voce che mi serve... e (tralasciando alcuni dettagli) vorrei copiare questo "range" di celle e andarlo ad incollare nella sheet "Elenco_Prezzi" contenuta nel file "File_di contabilità.XX.ods".

Eccoti il "codice", e per favore non vomitare sulla moquette...

REM  *****  BASIC  *****
' Sono su un file prezziario, ho trovato un'opera compiuta che mi
' piace un sacco
' e vorrei "copiarla" sull'Elenco prezzi (che sta in un altro file...)

sub Trasferisci_la_voce_su_Elenco_Prezzi

dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$A$3:$G$3"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())

'a questo punto vorre cambiare documento, cioè da
' questo file (ThisComponent) vorrei andare su un
' altro file per incollare...
' in excel usavo " Windows(Var_nome_file).Activate  "
' e poi...
Set oSheet = oCalcApp.sheets.getByname("Elenco Prezzi")
' o qualcosa del genere...
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "ToPoint"
args4(0).Value = "$A$15"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args4())
dim args5(5) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Flags"
args5(0).Value = "SDN"
args5(1).Name = "FormulaCommand"
args5(1).Value = 0
args5(2).Name = "SkipEmptyCells"
args5(2).Value = false
args5(3).Name = "Transpose"
args5(3).Value = false
args5(4).Name = "AsLink"
args5(4).Value = false
args5(5).Name = "MoveMode"
args5(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args5())

end sub

'###############################

Dimenticavo...

Andare fisicamente da un file all'altro in questo caso è importante...

Quando ho avuto l'esigenza di acquisire una un nuovo prezzo stavo lavorando sulla contabilità. Trovata la voce e trasferita sull'Elenco Prezzi io li vorrei trovarmi... guardarmi intorno... e poi decidere se devo cercare altri prezzi, oppure andare sulla sheet del Computo Metrico... o ancora creare una nuova analisi. La filosofia generale è aiutare l'utente, che è concentrato sul progetto, a non disorientarsi inseguendo le finestre che si aprono e si chiudono.

Su come - stando in "posto" - prelevare dei dati da un'altra sheet e incollarli sul "posto" senza muoverci dal "posto" ne parleremo... perché in starbasic non ho ancora capito come fare... :-)

grazie per la pazienza

Bart

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a