Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Salva in formato pdf con nome

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Salva in formato pdf con nome

Postdi zanatta77 » 13/03/14 20:34

Ciao a tutti.
Qualcuno può aiutarmi a modificare lo script seguente, il salvataggio avviene ma non riesco a visualizzare il file.pdf ottenuto,
un messaggio di errore di adobe reader XI dice "tipo file non supportato, oppure file danneggiato".
Codice: Seleziona tutto
Public Sub s()
    Dim sh As Worksheet
    Dim sPath As String
    Dim sNomeFile As Variant
    Dim lRisposta As Long
    Set sh = Worksheets("Foglio1")
    sPath = "C:\Proviamo\"
    If Dir(sPath, vbDirectory) = "" Then MkDir sPath
    Application.ScreenUpdating = False
    With sh
        If Not IsDate(.Range("Q2").Value) Then
             MsgBox "Nessuna data trovata!"
             Set sh = Nothing
            Exit Sub
        End If
        sNomeFile = InputBox("Dimmi il nome del file da salvare?" _
            , "... salvataggio file ...")
        If sNomeFile = Empty Then
            MsgBox "Non hai specificato nulla" & vbNewLine _
                & "Verrà utilizzato il nome PIPPO.XLSM"
            sNomeFile = "PIPPO.XLSM"
        ElseIf Right(sNomeFile, 5) <> ".XLSM" Then
            sNomeFile = sNomeFile & ".XLSM"
        End If
        sNomeFile = sPath & sNomeFile
        If Dir(sNomeFile) <> "" Then
            lRisposta = _
                MsgBox(Prompt:="Il file: " & sNomeFile & " esiste già! Sovrascriverlo?", _
                Title:="Attenzione", _
                Buttons:=vbYesNo + vbQuestion)
            If lRisposta = vbNo Then Exit Sub
       End If
        .Copy
        ActiveWorkbook.SaveAs Filename:=sNomeFile, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    ActiveWorkbook.Close
    End With
    Application.ScreenUpdating = True
    Set sh = Nothing
    End Sub


Grazie
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Sponsor
 

Re: Salva in formato pdf con nome

Postdi Anthony47 » 14/03/14 00:12

Questa macro non salva in formato pdf, quindi non so quale file cerchi poi di aprire; inoltre e' inutilmente complicata, per mostrare tutta l' abilita' dell' estensore.
La versione che esporta in pdf e'
Codice: Seleziona tutto
Public Sub s()
    Dim sh As Worksheet
    Dim sPath As String
    Dim sNomeFile As Variant
    Dim lRisposta As Long
    Set sh = Worksheets("Foglio1")
    sPath = "C:\Proviamo\"
    If Dir(sPath, vbDirectory) = "" Then MkDir sPath
    Application.ScreenUpdating = False
    With sh
        If Not IsDate(.Range("Q2").Value) Then
             MsgBox "Nessuna data trovata!"
             Set sh = Nothing
            Exit Sub
        End If
        sNomeFile = InputBox("Dimmi il nome del file da salvare?" _
            , "... salvataggio file ...")
        If sNomeFile = Empty Then
            MsgBox "Non hai specificato nulla" & vbNewLine _
                & "Verrà utilizzato il nome PIPPO.pdf"
            sNomeFile = "PIPPO.pdf"
        ElseIf Right(sNomeFile, 4) <> ".pdf" Then
            sNomeFile = sNomeFile & ".pdf"
        End If
        sNomeFile = sPath & sNomeFile
        If Dir(sNomeFile) <> "" Then
            lRisposta = _
                MsgBox(Prompt:="Il file: " & sNomeFile & " esiste già! Sovrascriverlo?", _
                Title:="Attenzione", _
                Buttons:=vbYesNo + vbQuestion)
            If lRisposta = vbNo Then Exit Sub
       End If
        .Copy
       ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= sNomeFile _
          , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
          OpenAfterPublish:=False
    ActiveWorkbook.Close SaveChanges:=False
    End With
    Application.ScreenUpdating = True
    Set sh = Nothing
    End Sub

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Salva in formato pdf con nome

Postdi zanatta77 » 14/03/14 07:22

Grazie
Funziona perfettamente
Avevo provato a modificare il Type ma non avevo inserito quality ecc ecc
buonagiornata.
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Re: Salva in formato pdf con nome

Postdi d.cremaschi » 26/03/14 20:25

come non detto, chi cerca trova e ho trovato un'alternativa anche più semplice:
Codice: Seleziona tutto
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=PDFperc & PDFname & "_part1", IncludeDocProperties:=True, IgnorePrintAreas:=True, from:=pagA, to:=pagP, OpenAfterPublish:=False

salva un file un po più grande 115KB ma non sono i 400 illeggibili di prima, comunque se non ti pesa e non ti fa perdere troppo tempo sono curioso di capire dove sbagliavo nel vecchio codice. ti ringrazio molto per la disponibilità Antony.
d.cremaschi
Utente Junior
 
Post: 14
Iscritto il: 25/03/14 20:44

Re: Salva in formato pdf con nome

Postdi Anthony47 » 26/03/14 23:50

Office 2010 ha di suo la possibilita' di esportare in formato pdf (Menu /File /Salva con nome), quindi non ha senso ricorrere a PdfCreator, come fa la macro della discussione da cui eri partito (viewtopic.php?f=26&t=94224&p=587914#p587914).

Tra l' altro quella discussione fu particolarmente confusa, quindi non so come l' hai seguita e come hai composto la tua macro.
Rilevo che a me nessuna delle due macro funziona (run time error la prima, sull' istruzione ActiveSheet.PrintOut; errore di compilazione la seconda, per l' uso di una KillProcess che non esiste in vba e probabilmente doveva essere codificata in altro modulo).
Riconfermo invece che le due versioni pubblicate nella discussione mi funzionano regolarmente sia in XL2003 che XL2010:
-la prima viewtopic.php?f=26&t=94224#p538887, con nome file scritto nel codice;
-la seconda viewtopic.php?f=26&t=94224#p538991, versione da richiamare come "funzione" da altra macro, passando Percorso e NomeFile, es
Codice: Seleziona tutto
Sub testa()
Call macroPrintPDF1(ThisWorkbook.Path & "\", "pippoMONA.pdf")
End Sub
(ribadendo comunque che se hai XL2010 e' meglio usare le capacita' native di excel senza ricorrere a pdfcreator)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Salva in formato pdf con nome

Postdi d.cremaschi » 27/03/14 17:49

grazie di tutto sei molto disponibile e paziente, si in effetti devo aver fatto un po di confusione nei vari forum, l'importante è cercare e non darsi per vinti, ci ho messo un po ma ci sono arrivato anche io a trovare la proprietà interna di excell.
d.cremaschi
Utente Junior
 
Post: 14
Iscritto il: 25/03/14 20:44


Torna a Applicazioni Office Windows


Topic correlati a "Salva in formato pdf con nome":


Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti