Buongiorno a tutti,
ho provato a registrare una macro per salvare una copia un file di Calc (sempre lo stesso) in un altra cartella.
Ma l'unica cosa che sono riuscita ad ottenere è che mi si apre la finestra di salva una copia, poi devo digitare tutto a mano.
Come faccio a inserire il percorso?
Il mio sistema operativo è Ubuntu.
Grazie
[Risolto] Macro per salvare una copia
[Risolto] Macro per salvare una copia
Ultima modifica di charlie il mercoledì 30 settembre 2020, 22:20, modificato 4 volte in totale.
Motivazione: Aggiunta ✔ verde.
Motivazione: Aggiunta ✔ verde.
Una medaglia per il Prof Cantaro https://firmiamo.it/una-medaglia-per-il ... io-cantaro - Firma la petizione http://www.istitutomajorana.it/forum2/T ... #pid111700
Re: Macro per salvare con nome
Avevo messo risolto ma avevo fatto confusione fra "Salva con NOME" e "Salva UNA COPIA",
a me serve che la macro con il comando Salva una copia perché il documento attivo deve rimanere quello della cartella originaria.
a me serve che la macro con il comando Salva una copia perché il documento attivo deve rimanere quello della cartella originaria.
Una medaglia per il Prof Cantaro https://firmiamo.it/una-medaglia-per-il ... io-cantaro - Firma la petizione http://www.istitutomajorana.it/forum2/T ... #pid111700
Re: Macro per salvare una copia
Ciao Marilù,
prova questa
Salva una copia del documento originario in altra cartella, ma con lo stesso nome.
Saluti
Geo
prova questa
Codice: Seleziona tutto
Sub Main2
Dim Doc As Object
Dim SceltaCartella As String
Dim NomeFileOriginario As String
Dim PercorsoCompleto As string
Doc = ThisComponent
SceltaCartella = getPath()
NomeFileOriginario = Doc.Title 'nome documento aperto completo di estensione
rem percorso completo del nuovo file
PercorsoCompleto = ConvertToUrl(SceltaCartella & NomeFileOriginario)
rem definisco le proprietà del nuoovo file (salvo in formato ods
dim Proprieta(0) as new com.sun.star.beans.PropertyValue
Proprieta(0).Name = "FilterName"
Proprieta(0).Value = "calc8"
rem salvo una copia del documento (Save As...)
Doc.storeToUrl(PercorsoCompleto,Proprieta())
End Sub
Function GetPath() As String
Dim oPathSettings, oFolderDialog
Dim sPath As String
oPathSettings = CreateUnoService("com.sun.star.util.PathSettings")
sPath = oPathSettings.Work
oFolderDialog = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
oFolderDialog.SetDisplayDirectory(sInPath)
If oFolderDialog.Execute() = com.sun.star.ui.dialogs.ExecutableDialogResults.OK Then
sPath = oFolderDialog.GetDirectory
Else
GetPath = ""
Exit Function
End If
If Right(sPath, 1) <> "/" Then sPath = sPath & "/"
GetPath = sPath
End Function
Saluti
Geo
LibO 7 su LinuxMint 21
Re: Macro per salvare una copia
scusa se ti ho disturbato ma ci rinuncio, troppo difficile per me
Non riesco a capire come modificarla indicando i percorsi
Non riesco a capire come modificarla indicando i percorsi
Una medaglia per il Prof Cantaro https://firmiamo.it/una-medaglia-per-il ... io-cantaro - Firma la petizione http://www.istitutomajorana.it/forum2/T ... #pid111700
Re: Macro per salvare una copia
Ciao Marilù,
non ho spiegato come funziona la macro proposta....
Lancia la macro "Main2". Si apre una finestra di dialogo per la selezione del percorso; fatta la scelta, il codice salva una copia del file originario, nella posizione scelta e con lo stesso nome del file originario.
Se invece ti interessa qualcosa di più semplice...
In entrambe le soluzioni:
- viene sovrascritto il file copia esistente se il percorso per il salvataggio è sempre lo stesso, senza darne avviso.
- il file attivo è sempre quello originario
Allego file di esempio con pulsanti per lanciare le macro.
Saluti
Geo
non ho spiegato come funziona la macro proposta....
Lancia la macro "Main2". Si apre una finestra di dialogo per la selezione del percorso; fatta la scelta, il codice salva una copia del file originario, nella posizione scelta e con lo stesso nome del file originario.
Se invece ti interessa qualcosa di più semplice...
Codice: Seleziona tutto
Sub Main3
Dim Doc As Object
Dim NomeFileOriginario As String
Dim PosizioneSalvataggio As string
Dim PercorsoCompleto As string
Doc = ThisComponent
NomeFileOriginario = Doc.Title 'nome documento aperto completo di estensione
rem definizione della posizione
PosizioneSalvataggio = "/home/pippo/Desktop/" '<<< DA MODIFICARE CON IL PERCORSO SCELTO SEMPRE TRA DOPPI APICI
rem percorso completo del nuovo file
PercorsoCompleto = ConvertToUrl(PosizioneSalvataggio & NomeFileOriginario)
rem definisco le proprietà del nuoovo file (salvo in formato ods
dim Proprieta(0) as new com.sun.star.beans.PropertyValue
Proprieta(0).Name = "FilterName"
Proprieta(0).Value = "calc8"
rem salvo una copia del documento (Save As...)
Doc.storeToUrl(PercorsoCompleto,Proprieta())
End Sub
- viene sovrascritto il file copia esistente se il percorso per il salvataggio è sempre lo stesso, senza darne avviso.
- il file attivo è sempre quello originario
Allego file di esempio con pulsanti per lanciare le macro.
Saluti
Geo
- Allegati
-
- Prova_Salva_una_copia.ods
- (10.29 KiB) Scaricato 190 volte
LibO 7 su LinuxMint 21
Re: Macro per salvare una copia
Grazie, la seconda è proprio quello che cercavo!
Oltretutto mettendola fra le macro del documento invece che fra quelle personali, si può applicare anche ad altri file di Calc da salvare in cartelle differenti!
Basta mettere un pulsantino ed è fatta
Una medaglia per il Prof Cantaro https://firmiamo.it/una-medaglia-per-il ... io-cantaro - Firma la petizione http://www.istitutomajorana.it/forum2/T ... #pid111700