Pagina 1 di 1

macro esporta pdf ods con messaggio d'avviso

Inviato: lunedì 24 dicembre 2018, 18:40
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:

Re: macro o non macro 1

Inviato: martedì 25 dicembre 2018, 18:46
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

Re: macro o non macro 1

Inviato: martedì 25 dicembre 2018, 21:52
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

Re: macro o non macro 1

Inviato: mercoledì 26 dicembre 2018, 8:40
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

Re: macro o non macro 1

Inviato: mercoledì 26 dicembre 2018, 19:01
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

Re: macro o non macro 1

Inviato: mercoledì 26 dicembre 2018, 19:31
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.

Re: macro o non macro 1

Inviato: mercoledì 26 dicembre 2018, 19:46
da macrok
hai ragione charlie era per fare dell'umorismo natalizio post vacanze di natale dal lavoro e problemi lavorativi :-)

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: mercoledì 26 dicembre 2018, 20:53
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.

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: mercoledì 26 dicembre 2018, 21:07
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: mercoledì 26 dicembre 2018, 21:12
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: giovedì 27 dicembre 2018, 8:46
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: giovedì 3 gennaio 2019, 22:44
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: venerdì 4 gennaio 2019, 9:41
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.

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: venerdì 4 gennaio 2019, 21:49
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: sabato 5 gennaio 2019, 7:35
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.

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: sabato 5 gennaio 2019, 8:22
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.

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: domenica 13 gennaio 2019, 18:54
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 ??

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: domenica 13 gennaio 2019, 19:02
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

Re: macro esporta pdf ods con messaggio d'avviso

Inviato: domenica 13 gennaio 2019, 19:11
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.