macro esporta pdf ods con messaggio d'avviso

Discussioni sull'applicazione per i fogli di calcolo
Bloccato
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

ciao a tutti

buona vigilia a tutti :bravo: :bravo: :bravo: :D :D :D
per non fare venire il mal di testa a nessuno spiegando a che punto sono arrivato vado a chiedere da zero cio che mi occorrerebbe cortesemente

avrei bisogno di una macro da assegnare ad un pulsante che mi faccia:

prima
mi salvi con nome (.ods) l'intero foglio che creo, prendendo il nome da due celle, in una determinata cartella che compilero a mano nella macro,
quando salvero il file mi servirebbe che venisse fuori una finestra di conferma con scritto: "vuoi salvare il file" (se è nuovo)
oppure "vuoi sovrascrivere il file" se dovesse gia esserci.

e infine ne avrei bisogna un altra che faccia come sopra ma che salvi il file in pdf

vi ringrazio in anticipo, ho in pratica guardato guide per un paio di mesi impazzendo senza capire dove sbaglio
mi piacerebbe capire da una macro finita nell'intento

saluti e
BUONE FESTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE ;) ;) ;) :) :) :D :D :D :lol: :lol: :lol: :lol: :super: :super: :super: :super: :alarm: :alarm: :alarm: :alarm:
Ultima modifica di macrok il mercoledì 26 dicembre 2018, 19:47, modificato 1 volta in totale.
libreoffice 5.0.3.2 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro o non macro 1

Messaggio da patel »

Buon Natale anche a te |||
mi sembra strano che cercando sul forum tu non abbia trovato qualche esempio da cui trarre spunto, allega un file di esempio con i tuoi tentativi e vediamo dove sbagli
-------------------
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
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro o non macro 1

Messaggio da macrok »

ciao
ho trovato la macro che ti fa salvare in pdf e in ods e ok tutto a posto , pero non ho trovato come far venire fuori il popup che ti chiede se vuoi salvare o sovrascrivere
ringrazio ancora e ancora auguri
libreoffice 5.0.3.2 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro o non macro 1

Messaggio da patel »

non vedo ancora allegati, un esempio di pop up

Codice: Seleziona tutto

Sub ExampleMsgBox
Dim nReturnCode As Integer, nDialogType As Integer
Dim sMessage As String
sMessage = "Vuoi salvare ?" 
nDialogType = 4 OR 256
nReturnCode = MsgBox(sMessage, nDialogType, "Salvataggio")
If nReturnCode = 6 Then
  Print "Hai scelto SI"
Else
  Print "Hai scelto NO"
End If
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
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro o non macro 1

Messaggio da macrok »

ciao
grazie ancora della risposta,
allora le macro che ho fatto una per il pdf e l'altra per l'ods si trovano associate al pulsante 2 e il pulsante 4 (del file in allegato)
ma quel pup li che hai fatto come lo devo gestire??? lo devo associare ad un pulsante?
perche io vorrei che mi saltasse fuori quando salvo in pdf e quanso salvo in ods,
poi volevo chiedere ma non cè un modo che mi permetta di unire due macro in una ?? ad esempio
salvare insieme sia pdf sia ods in due cartelle separata come gia create e che ti chieda anche se vuoi salvare o sovrascrivere

grazie ancora in anticipo

buon s.stefanocompilazione
Ultima modifica di macrok il mercoledì 26 dicembre 2018, 21:06, modificato 1 volta in totale.
libreoffice 5.0.3.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: macro o non macro 1

Messaggio da charlie »

Ciao, intervengo solo per "rompere le scatole".
Il titolo non mi sembra molto azzeccato, non è significativo del problema e dovrebbe essere cambiato. Grazie.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro o non macro 1

Messaggio da macrok »

hai ragione charlie era per fare dell'umorismo natalizio post vacanze di natale dal lavoro e problemi lavorativi :-)
libreoffice 5.0.3.2 su windows 10
Avatar utente
lucky63
Volontario assiduo
Volontario assiduo
Messaggi: 2996
Iscritto il: martedì 18 maggio 2010, 17:01

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da lucky63 »

Nel file le macro non ci sono.
Se vuoi supporto devi salvare le macro nel file.
Provvedi in tal senso e allega il nuovo file.
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

Codice: Seleziona tutto

sub tutti

Dim nReturnCode As Integer, nDialogType As Integer
Dim sMessage As String
sMessage = "Vuoi salvare ?"
nDialogType = 4 OR 256
nReturnCode = MsgBox(sMessage, nDialogType, "Salvataggio")
If nReturnCode = 6 Then
  Print "Hai scelto SI"
Else
  Print "Hai scelto NO"
End If

dim args2(1) as new com.sun.star.beans.PropertyValue
dim Arg(0) as new com.sun.star.beans.PropertyValue
Doc = ThisComponent
Controller = Doc.CurrentController
Sheet = Controller.ActiveSheet
CellRange = Sheet.getCellRangeByName("$A$1:$F$32")
cell = Sheet.getCellByPosition(4,6).string ' cella da dove prendere il nome
cell1 = Sheet.getCellByPosition(4,8).string ' cella da dove prendere il nome della cartella di destinazione
cell2 = Sheet.getCellByPosition(4,10).string ' cella secondo nome
Controller.select(CellRange)
Arg(0).Name = "Selection"
Arg(0).Value = CellRange

args2(0).Name = "FilterName"
args2(0).Value = "calc_pdf_Export"
args2(1).Name = "FilterData"
args2(1).Value = Arg()
Doc.storeToURL("file:///C:/Users/user1/Desktop/pdfile/2018/" & cell1 & "/" & cell & "_" & cell2 & ".pdf",args2())

    dim document   as object
    dim dispatcher as object
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dim args1(1) as new com.sun.star.beans.PropertyValue
    FileLavoro = ThisComponent
    FoglioLavoro = FileLavoro.Sheets.getByName("Foglio1")
    rif = FoglioLavoro.getCellRangeByName("A1").string
    odate = FoglioLavoro.getCellRangeByName("A2").string
    odate = replace(odate,"/","-")
    fname="preventivo-" & rif & "-" & odate & ".ods"
    args1(0).Name = "URL"
    args1(0).Value = "file:///C:/Users/user1/Desktop/poddd/"& fname
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
    
end sub
Ultima modifica di charlie il giovedì 27 dicembre 2018, 8:48, modificato 1 volta in totale.
Motivazione: Codificato testo
libreoffice 5.0.3.2 su windows 10
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

ciao ho provato la macro di patel
incolllandola alle mie due come sopra, il risultato è proprio quello che volevo, con queste note
(SOTTOLINE CHE LA MACRO È UNA FI.......TA PAZZESCA :-)
cmq
se dico di si, le altre due macro funzionano normalmente,
se dico di no al secondo messaggio mi appare "hai scelto no" e se scelgo ok le altre macro vanno avanti ugualmente, se scelgo
annulla viene fuori un errore di compilazione aprendomi il cimpilatore macro
non si potrebbe cortesemente e pazzientemente :) far si che se sclego ok, vanno e se scelgo no non fa nulla ?
e si potrebbe aggiungere una riga dove se legge l'esistenza della stesso file , ti chieda se voglio sovrascriverla ??
ringrazio nuovamente signori :-)
buona serata
libreoffice 5.0.3.2 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da patel »

il risultato era scontato, dovevi ragionarci un poco sulla macro di esempio e non copiare e basta

Codice: Seleziona tutto

sub Scegli
Dim nReturnCode As Integer, nDialogType As Integer
Dim sMessage As String
sMessage = "Vuoi salvare ?"
nDialogType = 4 OR 256
nReturnCode = MsgBox(sMessage, nDialogType, "Salvataggio")
If nReturnCode = 6 Then ' hai scelto di salvare
  Call SalvaPDF
  Call Salva
Else
  Print "Hai scelto NO"
End If
End Sub

Sub SalvaPDF
dim args2(1) as new com.sun.star.beans.PropertyValue
dim Arg(0) as new com.sun.star.beans.PropertyValue
Doc = ThisComponent
Controller = Doc.CurrentController
Sheet = Controller.ActiveSheet
CellRange = Sheet.getCellRangeByName("$A$1:$F$32")
cell = Sheet.getCellByPosition(4,6).string ' cella da dove prendere il nome
cell1 = Sheet.getCellByPosition(4,8).string ' cella da dove prendere il nome della cartella di destinazione
cell2 = Sheet.getCellByPosition(4,10).string ' cella secondo nome
Controller.select(CellRange)
Arg(0).Name = "Selection"
Arg(0).Value = CellRange

args2(0).Name = "FilterName"
args2(0).Value = "calc_pdf_Export"
args2(1).Name = "FilterData"
args2(1).Value = Arg()
Doc.storeToURL("file:///C:/Users/user1/Desktop/pdfile/2018/" & cell1 & "/" & cell & "_" & cell2 & ".pdf",args2())
End Sub

Sub Salva
    dim document   as object
    dim dispatcher as object
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dim args1(1) as new com.sun.star.beans.PropertyValue
    FileLavoro = ThisComponent
    FoglioLavoro = FileLavoro.Sheets.getByName("Foglio1")
    rif = FoglioLavoro.getCellRangeByName("A1").string
    odate = FoglioLavoro.getCellRangeByName("A2").string
    odate = replace(odate,"/","-")
    fname="preventivo-" & rif & "-" & odate & ".ods"
    args1(0).Name = "URL"
    args1(0).Value = "file:///C:/Users/user1/Desktop/poddd/"& fname
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
  
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
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

ciao
grazie del supporto
ma se uno non sa cosa e come scrivere puo ragionarci su ventanni e non risolvere cmq niente
è per questo che ho chiesto qua
e cmq la tua macro non funziona
saluti
libreoffice 5.0.3.2 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da patel »

dire che non funziona non è sufficiente per capire cosa c'è che non va, ti è stato chiesto di allegare un file di esempio e non l'hai fatto, a questo punto mi sembra che tu abbia poca voglia di risolvere.
-------------------
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
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

sinceramente mi ha fatto venire poca voglia di risolvere il tuo modo "poco umile di interfacciarti al prossimo" credendo che tutti sappiano tutto... ma
cmq anno nuovo vita nuova :-)

allora qui sotto ti incollo il mio elaborato conclusivo con la tua macro sopra
solo che se schiaccio ok funziona tutto come deve, ma se schiaccio no e poi confermo che ho scelto no, lui fa i salvataggi in pdf e ods ugualmente, invece se schiaccio, no e poi annulla, viene fuori un messaggio di errore.
Ali_Moni_Pa
ringrazio nuovamente

Codice: Seleziona tutto

sub Tutti

Dim nReturnCode As Integer, nDialogType As Integer
Dim sMessage As String
sMessage = "Vuoi salvare ?"
nDialogType = 4 OR 256
nReturnCode = MsgBox(sMessage, nDialogType, "Salvataggio")
If nReturnCode = 6 Then ' hai scelto di salvare
  Call Tutti
  Call Salva
Else
  Print "Hai scelto NO"
End If

dim args2(1) as new com.sun.star.beans.PropertyValue
dim Arg(0) as new com.sun.star.beans.PropertyValue
Doc = ThisComponent
Controller = Doc.CurrentController
Sheet = Controller.ActiveSheet
CellRange = Sheet.getCellRangeByName("$A$1:$F$32")
cell = Sheet.getCellByPosition(4,6).string ' cella da dove prendere il nome
cell1 = Sheet.getCellByPosition(4,8).string ' cella da dove prendere il nome della cartella di destinazione
cell2 = Sheet.getCellByPosition(4,10).string ' cella secondo nome
Controller.select(CellRange)
Arg(0).Name = "Selection"
Arg(0).Value = CellRange

args2(0).Name = "FilterName"
args2(0).Value = "calc_pdf_Export"
args2(1).Name = "FilterData"
args2(1).Value = Arg()
Doc.storeToURL("file:///C:/Users/user1/Desktop/pdfile/2018/" & cell1 & "/" & cell & "_" & cell2 & ".pdf",args2())

    dim document   as object
    dim dispatcher as object
    document   = ThisComponent.CurrentController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dim args1(1) as new com.sun.star.beans.PropertyValue
    FileLavoro = ThisComponent
    FoglioLavoro = FileLavoro.Sheets.getByName("Foglio1")
    rif = FoglioLavoro.getCellRangeByName("A1").string
    odate = FoglioLavoro.getCellRangeByName("A2").string
    odate = replace(odate,"/","-")
    fname="preventivo-" & rif & "-" & odate & ".ods"
    args1(0).Name = "URL"
    args1(0).Value = "file:///C:/Users/user1/Desktop/poddd/"& fname
    args1(1).Name = "FilterName"
    args1(1).Value = "calc8"
    dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
    
end sub
libreoffice 5.0.3.2 su windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4020
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da patel »

sinceramente mi ha fatto venire poca voglia di continuare ad aiutarti, non posso verificare il problema senza disporre del file già chiesto più volte.
-------------------
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
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da charlie »

@macrok
per una mia svista non hai ricevuto il messaggio che riservo di solito ai nuovi arrivati, me ne scuso e provvedo ora a darti il benvenuto sul forum a nome della comunità degli utenti.
Come di consueto faccio, ti invito a consultare il Manuale di sopravvivenza (http://forum.openoffice.org/it/forum/vi ... hp?f=1&t=2) per avere una panoramica delle regole del forum e nello spirito delle quali ti invito ad avere un approccio un pochino più amichevole nei confronti di chi prova ad aiutarti e aderendo alle richieste che ti vengono fatte.
Sono sicuro che ne trarrai solo vantaggi. Buon proseguimento.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

scusate ma, nessuno vede che non riesco a fare quello che mi chiedete ????, ho provato ad allegare il file con sta macro senza riuscirci, quindi....
NON E' UGUALE SE INCOLLO SOLO LA MACRO ?????
o altrimenti qualcuno che è ingrado non potrebbe cortesemente compilarmi quanto mi serve??
ri ringrazio
saluti

sapete se esistono altri forum di libre office sempre in italiano ??
libreoffice 5.0.3.2 su windows 10
macrok
bannato
Messaggi: 10
Iscritto il: lunedì 24 dicembre 2018, 18:25

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da macrok »

sub Tutti

Dim nReturnCode As Integer, nDialogType As Integer
Dim sMessage As String
sMessage = "Vuoi salvare ?"
nDialogType = 4 OR 256
nReturnCode = MsgBox(sMessage, nDialogType, "Salvataggio")
If nReturnCode = 6 Then ' hai scelto di salvare
Call Tutti
Call Salva
Else
Print "Hai scelto NO"
End If

dim args2(1) as new com.sun.star.beans.PropertyValue
dim Arg(0) as new com.sun.star.beans.PropertyValue
Doc = ThisComponent
Controller = Doc.CurrentController
Sheet = Controller.ActiveSheet
CellRange = Sheet.getCellRangeByName("$A$1:$F$32")
cell = Sheet.getCellByPosition(4,6).string ' cella da dove prendere il nome
cell1 = Sheet.getCellByPosition(4,8).string ' cella da dove prendere il nome della cartella di destinazione
cell2 = Sheet.getCellByPosition(4,10).string ' cella secondo nome
Controller.select(CellRange)
Arg(0).Name = "Selection"
Arg(0).Value = CellRange

args2(0).Name = "FilterName"
args2(0).Value = "calc_pdf_Export"
args2(1).Name = "FilterData"
args2(1).Value = Arg()
Doc.storeToURL("file:///C:/Users/user1/Desktop/pdfile/2018/" & cell1 & "/" & cell & "_" & cell2 & ".pdf",args2())

dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
FileLavoro = ThisComponent
FoglioLavoro = FileLavoro.Sheets.getByName("Foglio1")
rif = FoglioLavoro.getCellRangeByName("A1").string
odate = FoglioLavoro.getCellRangeByName("A2").string
odate = replace(odate,"/","-")
fname="preventivo-" & rif & "-" & odate & ".ods"
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Users/user1/Desktop/poddd/"& fname
args1(1).Name = "FilterName"
args1(1).Value = "calc8"
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())

end sub
libreoffice 5.0.3.2 su windows 10
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8805
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: macro esporta pdf ods con messaggio d'avviso

Messaggio da charlie »

macrok ha scritto:sapete se esistono altri forum di libre office sempre in italiano ??
Non ti sembra di essere un po' impertinente? Chiudo la discussione.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Bloccato