[Risolto]Salva e chiudi file 2 lanciando macro dal file 1
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
[Risolto]Salva e chiudi file 2 lanciando macro dal file 1
Salve a tutti, ho due file aperti che per semplicità chiamo "file madre" e "file figlia". Sul file madre ho una serie di pulsanti che azionano varie macro. Vorrei creare un ulteriore pulsante (non ho problemi) che (ribadisco dal "file madre") dia le seguenti istruzioni:
1. Salva con nome ........xls il "file figlia" e chiudilo;
2. Torna sulla cella a1, del foglio 1 del "file madre".
Mi sembrava semplice, ma a causa della mia scarsa conoscenza quando scrivo l'istruzione salva con nome, chiudi.... mi punta sul file madre e non su quello figlia.... perdonate la richiesta che credo sia semplice, ma non trovo la giusta istruzione...
Anticipatamente ringrazio e saluto.
1. Salva con nome ........xls il "file figlia" e chiudilo;
2. Torna sulla cella a1, del foglio 1 del "file madre".
Mi sembrava semplice, ma a causa della mia scarsa conoscenza quando scrivo l'istruzione salva con nome, chiudi.... mi punta sul file madre e non su quello figlia.... perdonate la richiesta che credo sia semplice, ma non trovo la giusta istruzione...
Anticipatamente ringrazio e saluto.
Ultima modifica di GianniRm1968 il sabato 22 gennaio 2022, 7:44, modificato 2 volte in totale.
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
mostra il codice che hai scritto
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Codice: Seleziona tutto
Sub Tabacchi1
dim document as object
Dim DocName as object, DocUlr as string, dummy(), range as object
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Range = Sheet.getCellRangeByName("A2:b291").getDataArray ' range da copiare
sFileName ="file:///c:/users/bluei/onedrive/Desktop/Ordineopen.ods" ' file destinazione
DocUrl = ConvertToURL(sFileName)
DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
Sheet1 = DocName.Sheets(0)
dRange = Sheet1.getCellRangeByName("A2:b291") ' range destinazione
dRange.setDataArray(Range)
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim filename as string,args()
dim args57(1) as new com.sun.star.beans.PropertyValue
args57(0).Name = "URL"
args57(0).Value = "file:///C:/Users/bluei/onedrive/Desktop/Ordineexcel.xls"
args57(1).Name = "FilterName"
args57(1).Value = "MS Excel 97"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args57())
End Sub
Ultima modifica di charlie il venerdì 9 luglio 2021, 14:18, modificato 1 volta in totale.
Motivazione: formattato codice
Motivazione: formattato codice
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
Non ho capito bene, puoi allegare i due file ?
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Buongiorno e grazie per l'attenzione intanto. Forse mi sono spiegato male, anzi ne sono certo. Io lancio una macro dal file "Gestionale.ods" che mi fa (correttamente) le istruzioni di:
1) copiare un certo range da un certo foglio;
2) apre il file "ordiniopen.ods" e ci incolla il range copiato;
Qui nasce il problema, in quanto vorrei salvare "ordiniopen.ods", cambiando il formato in xls ma non lo fa sul file "ordiniopen" ma sul file "gestionale.ods"... non riesco come fare a dirgli che il file da salvare con estensione xls deve essere "ordiniopen" e non "gestionale.ods!!"
3) incolla il range copiato;
1) copiare un certo range da un certo foglio;
2) apre il file "ordiniopen.ods" e ci incolla il range copiato;
Qui nasce il problema, in quanto vorrei salvare "ordiniopen.ods", cambiando il formato in xls ma non lo fa sul file "ordiniopen" ma sul file "gestionale.ods"... non riesco come fare a dirgli che il file da salvare con estensione xls deve essere "ordiniopen" e non "gestionale.ods!!"
3) incolla il range copiato;
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
prova così modificando i percorsi
Codice: Seleziona tutto
Sub salvaxls
dim document as object
Dim DocName as object, DocUlr as string, dummy(), range as object
Doc = ThisComponent
Sheet = Doc.Sheets(0)
Range = Sheet.getCellRangeByName("A1:b3").getDataArray ' range da copiare
sFileName ="file:///F:/download/Salvatoxls.ods" ' file destinazione
DocUrl = ConvertToURL(sFileName)
DocName = StarDesktop.loadComponentFromURL (DocUrl, "_blank",0, Dummy() )
Sheet1 = DocName.Sheets(0)
dRange = Sheet1.getCellRangeByName("A2:b4") ' range destinazione
dRange.setDataArray(Range)
document = ThisComponent'
Dim args2(1) As New com.sun.star.beans.PropertyValue
args2(0).Name = "InteractionHandler"
args2(0).Value = ""
args2(1).Name = "FilterName"
args2(1).Value = "MS Excel 97" REM Change the export filter
Document.storeToURL("file:///F:/download/Salvatoxls.xls",args2())
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Ho provato, ma continua a salvarmi (seppure correttamente in formato excel), non il file denominato "ordiniopen.ods" ma "il foglio del file del "gestionale.ods" (ovvero la fonte da cui preleva il range da copiare e poi incollare sul "ordiniopen.ods" ) In pratica invece di rendere attivo e dunque salvare il file openordini.ods in formato xls, rende attivo il foglio da cui lancio la macro e salva solo quel foglio in excel... (spero di essermi più o meno spiegato
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
Io l'ho provata e mi funziona, a questo punto non ti rimane che allegare i file
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Ho provato ma il file è ben oltre le dimensioni consentite di 2 m, dovrei fare un alleggerimento abbastanza compesso
Mi permetto a questo punto di provare a bypassare il problema con una soluzione alternativa e molto più diretta:
Il mio file "gestionale.ods" ha nel primo foglio "Ordine tabacchi" un elenco su 2 colonne, e poi moltissimi altri fogli...
Vorrei a questo punto capire se posso salvare il solo primo foglio e non tutto il file e salvarlo con la specifica >salva con nome "ordineexcel.xls" e se addirittura possibile che tale file appena salvato si chiudesse tornando poi ad una certa cella di un certo foglio del mio "gestionale.ods"
Perdonami se abuso della tua pazienza...
Mi permetto a questo punto di provare a bypassare il problema con una soluzione alternativa e molto più diretta:
Il mio file "gestionale.ods" ha nel primo foglio "Ordine tabacchi" un elenco su 2 colonne, e poi moltissimi altri fogli...
Vorrei a questo punto capire se posso salvare il solo primo foglio e non tutto il file e salvarlo con la specifica >salva con nome "ordineexcel.xls" e se addirittura possibile che tale file appena salvato si chiudesse tornando poi ad una certa cella di un certo foglio del mio "gestionale.ods"
Perdonami se abuso della tua pazienza...
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
Ciao, puoi usare la mail del forum per allegati pesanti: viewtopic.php?f=8&t=6294
P.S. No Dropbox, non ho verificato se funziona ancora.
P.S. No Dropbox, non ho verificato se funziona ancora.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Appena inviata dall'email blueicetovaglieri@gmail.com
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
Al momento non risulta.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: Salva e chiudi file 2 lanciando macro dal file 1
Un alleggerimento non è mai complesso, nel tuo caso elimina tutti i fogli salvo il primo e salva con altro nome.GianniRm1968 ha scritto:Ho provato ma il file è ben oltre le dimensioni consentite di 2 m, dovrei fare un alleggerimento abbastanza compesso
Mi permetto a questo punto di provare a bypassare il problema con una soluzione alternativa e molto più diretta:
Il mio file "gestionale.ods" ha nel primo foglio "Ordine tabacchi" un elenco su 2 colonne, e poi moltissimi altri fogli...
Mai mettere la propria email in un post di un forum, potresti essere sommerso da spam
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: Salva e chiudi file 2 lanciando macro dal file 1
Ho provato a togliere i fogli, ma dopo un po mi va in crash
OpenOffice 4.1.9 su Windows 10 home
Re: Salva e chiudi file 2 lanciando macro dal file 1
Allego esempio di una possibile soluzione la quale prevede che inizialmente il file "Ordineexcel.xls", composto da un solo foglio (anche vuoto), sia già stato salvato in formato Excel97-2003 nel percorso di salvataggio impostato nella macro.GianniRm1968 ha scritto:provare a bypassare il problema con una soluzione alternativa e molto più diretta
La macro deve essere adeguata come "PercorsoSalvataggio" in base al proprio sistema operativo e esigenze.
Nell’esempio è collegata al pulsante “Ordineexcel.xls” aggiunto alla barra strumenti standard.
Codice: Seleziona tutto
Sub AggiornaOrdineXls
Rem Link del quesito: https://forum.openoffice.org/it/forum/viewtopic.php?f=9&t=11284
Rem Propongo una soluzione alternativa.
Rem Questa macro prevede che nel percorso di salvataggio sia già stato salvato
Rem il file "Ordineexcel.xls" in formato Excel97-2003 composto di UN SOLO foglio.
Rem ----- Adeguare il "PercorsoSalvataggio" in base al proprio sistema operativo e esigenze.
Dim Dummy()
Doc = ThisComponent
fOrdineTabacchi = Doc.Sheets.GetByName("Ordine tabacchi")
Cella = fOrdineTabacchi.GetCellRangeByName("A1")
Rem Cella attiva diventerà "Ordineabacchi.A1"
CellaAttiva = Doc.CurrentController.Select(Cella)
Rem ----- Imposto i parametri di percorso e nomefile
PercorsoSalvataggio = ConvertToUrl("file:///home/NomeUTENTE/Scrivania/") 'DA CAMBIARE Esempio percorso Linux
'PercorsoSalvataggio = ConvertToUrl("file:///C:/Percorso/") 'DA CAMBIARE Esempio percorso Windows
NomeDelFile = "Ordineexcel"
Rem ----- Apro Il file già presalvato in formato xls e con un solo foglio
OrdineXls = StarDesktop.loadComponentFromURL(PercorsoSalvataggio & NomeDelFile & ".xls" ,"_blank", 0, Dummy() )
Rem Rinomino il foglio presente
OrdineXls.Sheets(0).name = "VecchioFoglio"
Rem ----- Copio il FoglioAttivo nel nuovo file
Dim COPIA(2) As New com.sun.star.beans.PropertyValue
FRAME = Doc.CurrentController.Frame
ESEGUI = CreateUnoService("com.sun.star.frame.DispatchHelper")
COPIA(0).Name = "DocName"
COPIA(0).Value = NomeDelFile
COPIA(1).Name = "Index"
COPIA(1).Value = 1
COPIA(2).Name = "Copy"
COPIA(2).Value = True
ESEGUI.executeDispatch(FRAME, ".uno:Move", "", 0, COPIA())
Rem ----- Elimino il vecchio foglio
OrdineXls.Sheets.RemoveByName("VecchioFoglio")
Rem ----- Salvo il FileXls e lo chiudo
OrdineXls.Store(True)
OrdineXls.Close(True)
Rem Avviso finale
MsgBox("Ordineexcel.xls Aggiornato " , 0 , "ATTENZIONE:")
End sub
- Allegati
-
- Test - Macro - AggiornaOrdineTabacchiXls.ods
- (17.95 KiB) Scaricato 78 volte
-
- Messaggi: 32
- Iscritto il: mercoledì 17 febbraio 2021, 23:29
Re: [Risolto]Salva e chiudi file 2 lanciando macro dal file
Grazie con le suggerite modifiche la macro funziona come dovuto!
OpenOffice 4.1.9 su Windows 10 home