Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Macro personalizzata per salvare in PDF

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

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 06/02/14 15:12

Ciao a tutti.
Scusate se mi infilo...
Io ho bisogno di salvare dei file in pdf dandogli come nome uno definito + il nome del foglio.
p. e. Gestione Fatture - FT 01
dove "FT 01" è il nome del foglio di lavoro.
Potete aiutarmi?
Ho seguito già i vostri suggerimenti riguardo all'icona nella barra veloce ecc
ma salva con il nome del file e a me serve anche il nome del foglio.
Grazie

PS: mi va bene che salvi nella stessa cartella del file excel
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Sponsor
 

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 07/02/14 02:03

Immagino che fai riferimento alla macro descritta in questo messaggio: viewtopic.php?f=26&t=100997#p583723
Se tu vuoi impostare il nome file con parte fissa piu' nome foglio attivo allora modificherai questa istruzione
pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & ".pdf"
in questa:
Codice: Seleziona tutto
pdfFile = .Path & "\" & "Stringa Fissa a tuo Piacimento" & .ActiveSheet.Name & ".pdf"


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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 07/02/14 17:51

Non ho ancora provato, ma ti ringrazio molto. Bye
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 07/02/14 18:58

Scusa un'osservazione.
Ma così com'è salva sempre nella stessa cartella di lavoro. E se invece volessi che l'icona della barra veloce salvasse ogni volta nella cartella di lavoro che ospita il foglio attivo, oltre ovviamente al nome del foglio attivo?
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 07/02/14 19:06

Scusa, mi sono accorto che nel codice richiama la path attiva. Però il nome del file sarà fisso con la "Stringa Fissa a tuo Piacimento", vero? Posso usarla solo in quel contesto.

pdfFile = .Path & "\" & "Stringa Fissa a tuo Piacimento" & .ActiveSheet.Name & ".pdf"
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 08/02/14 20:53

Non ho capito se e' tutto chiaro o se hai ancora qualche dubbio...
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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 08/02/14 22:20

No veramente non ho capito come posso modificare questo codice
pdfFile = .Path & "\" & "Stringa Fissa a tuo Piacimento" & .ActiveSheet.Name & ".pdf"
e in particolare la stringa "Stringa Fissa a tuo Piacimento" con una variabile così che abbia il nome del file e del foglio, in qualsiasi file si usi.
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 09/02/14 01:52

Io ho bisogno di salvare dei file in pdf dandogli come nome uno definito + il nome del foglio.
p. e. Gestione Fatture - FT 01
dove "FT 01" è il nome del foglio di lavoro.
A questa domanda rispondeva il codice che avevo suggerito: il nome assegnato al file sara' composto da una parte fissa (la stringa "Gestione Fatture -") con in aggiunta il nome del foglio di lavoro (che sara' calcolato con .ActiveSheet.Name).

Se invece vuoi che il nome sia calcolato come "nome del file e nome del foglio" allora nella macro da cui eravamo partiti usa
Codice: Seleziona tutto
    pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & . ActiveSheet.Name ".pdf"

Invece del "sottolineato" (_) puoi usare il sparatore che piu' ti aggrada, purche' compatibile con la struttura nomi di Windows.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 09/02/14 15:31

Codice: Seleziona tutto
 pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & . ActiveSheet.Name ".pdf"


Ciao grazie per l'aiuto.
Funziona perfettamente secondo quello che volevo fare io. :D
Ma a beneficio di chi magari fosse interessato all'argomento e mai per correggerti, sicuramente sarà stata una svista, indico quello funzionante.

Questo sotto è il codice corretto.

Codice: Seleziona tutto
 pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & . ActiveSheet.Name & ".pdf"
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 12:19

Ciao, non so se posso fare qui questa richiesta, ma mi servirebbe modificare la macro che mi hai dato con una che cerchi il file pdf nella directory così come è stato salvato. Cioè riconoscendo la path dove si trova il file.
Così dal foglio Principale clicco su un pulsante che fa partire l'inputbox dove inserisco solo il nome del foglio senza estensione.
Questo è il codice che ho trovato in un altra sezione, ma non sono riuscito ad adattarlo.

Codice: Seleziona tutto
Sub ApriPDF()
    Dim Message, Title, MyValue
    Dim pathPDF As String
    Message = "Visualizza quanto segue :"
    Title = "SEARCH "
    MyValue = InputBox(Message, Title)
    pathPDF = "C:\test\" ' Percorso dove si trovano i file in .pdf

    If Right(MyValue, 4) <> ".xls" Then
        MsgBox "Inserire in modo corretto l'estensione del file che deve essere  ====>>  '.pdf'  ", vbCritical
        Exit Sub
    End If

    If Len(Dir(pathPDF & MyValue)) > 0 Then
        strAddress = pathPDF & MyValue
        ActiveWorkbook.FollowHyperlink Address:=strAddress
        MsgBox "File trovato ed aperto", vbInformation
    Else
        MsgBox "La richiesta non può essere soddisfatta perchè il file  '" & MyValue & _
            "'  NON esiste nel percorso  '" & pathPDF & "'", vbInformation
    End If
End Sub
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi Anthony47 » 10/02/14 13:51

Per quello che ho capito, devi sostituire le righe
pathPDF = "C:\test\" ' Percorso dove si trovano i file in .pdf
If Right(MyValue, 4) <> ".xls" Then

con
Codice: Seleziona tutto
pathPDF = ActiveWorkbook.Path ' Percorso dove si trovano i file in .pdf
If Right(MyValue, 4) <> ".pdf" Then


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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 15:29

grazie ora provo
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi ricky53 » 10/02/14 16:51

Ciao,
SORRY!
Non avevo letto tutto il codice presente nell'intervento di Anthony


volevo far notare l'errore su ".xls" invece che ".pdf"
Cosa che aveva già fatto Anthony.

Ma il controllo non lo dovresti fare sulla presenza di ".pdf" ma sul fatto che non va digitato nella InputBox
dal tuo codice
Codice: Seleziona tutto
'...
MyValue = InputBox(Message, Title)
'...
    If Right(MyValue, 4) <> ".xls" Then
        MsgBox "Inserire in modo corretto l'estensione del file che deve essere  ====>>  '.pdf'  ", vbCritical
        Exit Sub
    End If
'...


Invece nel testo avevi scritto
Così dal foglio Principale clicco su un pulsante che fa partire l'inputbox dove inserisco solo il nome del foglio senza estensione.


Cosa vuoi effettivamente fare?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 19:38

Ciao Ricky
avrai notato che quello sopra è il codice che hai modificato tu nell'altro topic.
Io avrei bisogno di aprire il file pdf che si trova nella cartella attiva. I file corrispondono ai fogli della cartella p.e. "Foglio1.pdf", "Foglio2.pdf" ecc
Io dalla inputbox vorrei scrivere solo "Foglio1" ad esempio.
Inputbox richiamata da un pulsante.
Ciao
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 19:44

Questo codice ha un riferimento fisso alla directory

Codice: Seleziona tutto
    pathPDF = "C:\test\" ' Percorso dove si trovano i file in .pdf


a me serve che cerchi nella directory del file aperto


I file sono salvati con questa istruzione

pathPDF = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & .ActiveSheet.Name & ".pdf"

e con una istruzione simile volevo richiamarli inserendo il nome del file se è possibile
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 20:04

Remmando
Codice: Seleziona tutto
   ' If Right(MyValue, 4) <> ".xls" Then
    '    MsgBox "Inserire in modo corretto l'estensione del file che deve essere  ====>>  '.pdf'  ", vbCritical
    '    Exit Sub
   ' End If


appare questo messaggio con il nome del file giusto, ma non lo apre!! :(

Codice: Seleziona tutto
        MsgBox "La richiesta non può essere soddisfatta perchè il file  '" & MyValue & _
            "'  NON esiste nel percorso  '" & pathPDF & "'", vbInformation


Questa è la macro completa
Codice: Seleziona tutto
Sub ApriPDF()
    Dim Message, Title, MyValue
    Dim pathPDF As String
    Message = "Visualizza quanto segue :"
    Title = "SEARCH "
    MyValue = InputBox(Message, Title)
    'pathPDF = "C:\test\" ' Percorso dove si trovano i file in .pdf
With ActiveWorkbook
    If .Path = "" Then Exit Sub
    pathPDF = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & .ActiveSheet.Name & ".pdf"
End With
   
   
'.............................................................
' AGGIUNTE
   ' If Right(MyValue, 4) <> ".xls" Then
    '    MsgBox "Inserire in modo corretto l'estensione del file che deve essere  ====>>  '.pdf'  ", vbCritical
    '    Exit Sub
   ' End If
' AGGIUNTE
'.............................................................

    If Len(Dir(pathPDF & MyValue)) > 0 Then
        strAddress = pathPDF & MyValue
        ActiveWorkbook.FollowHyperlink Address:=strAddress
' AGGIUNTA
        MsgBox "File trovato ed aperto", vbInformation
    Else
' MODIFICATA
        MsgBox "La richiesta non può essere soddisfatta perchè il file  '" & MyValue & _
            "'  NON esiste nel percorso  '" & pathPDF & "'", vbInformation
    End If
End Sub
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 10/02/14 20:23

Queste sono le modifiche che ho fatto, ma non apre il file anche se la stringa riporta il nome esatto
Codice: Seleziona tutto
Sub ApriPDF()
    Dim Message, Title, MyValue
    Dim pathPDF As String
    Message = "Visualizza quanto segue :"
    Title = "SEARCH "
    MyValue = InputBox(Message, Title)
    'pathPDF = "C:\test\" ' Percorso dove si trovano i file in .pdf
' MODIFICATA
With ActiveWorkbook
    If .Path = "" Then Exit Sub
    pathPDF = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & MyValue & ".pdf" '.ActiveSheet.Name
    MyFile = Left(.Name, InStr(.Name, ".") - 1) & "_"
End With
   
   
'.............................................................
' RIMOSSA
   ' If Right(MyValue, 4) <> ".xls" Then
    '    MsgBox "Inserire in modo corretto l'estensione del file che deve essere  ====>>  '.pdf'  ", vbCritical
    '    Exit Sub
   ' End If

'.............................................................
' MODIFICATA
    If Len(Dir(MyFile & MyValue)) > 0 Then
        strAddress = MyFile & MyValue  'strAddress = pathPDF & MyValue
        ActiveWorkbook.FollowHyperlink Address:=strAddress
' AGGIUNTA
        MsgBox "File trovato ed aperto", vbInformation
    Else

        MsgBox "La richiesta non può essere soddisfatta perchè il file  '" & MyFile & MyValue & _
            "'  NON esiste nel percorso  '" & pathPDF & "'", vbInformation
    End If
End Sub
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi ricky53 » 11/02/14 00:26

Ciao,
non capisco perchè hai utilizzato
Codice: Seleziona tutto
Dir(MyFile & MyValue)

quando il nome del file con il percorso era stato composto nella variabile "pathPDF"

Stessa domanda per la variabile "strAddress" ... è sempre valida la variabile "pathPDF"


Comunque prova in questo modo ...
con le prove che ho fatto il file PDF si è aperto
Codice: Seleziona tutto
Sub ApriPDF()
    Dim Message, Title, MyValue
    Dim pathPDF As String
    Message = "Visualizza quanto segue :"
    Title = "SEARCH "
    MyValue = InputBox(Message, Title)
    With ActiveWorkbook
        If .Path = "" Then Exit Sub
        pathPDF = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & "_" & MyValue & ".pdf" '.ActiveSheet.Name
        MyFile = Left(.Name, InStr(.Name, ".") - 1) & "_"
    End With
   
' TOLTA
'    If Len(Dir(MyFile & MyValue)) > 0 Then
    If Len(Dir(pathPDF)) > 0 Then ' <<==== AGGIUNTA

' TOLTE
'        strAddress = MyFile & MyValue  'strAddress = pathPDF & MyValue
'        ActiveWorkbook.FollowHyperlink Address:=strAddress
' TOLTE
        ActiveWorkbook.FollowHyperlink Address:=pathPDF ' <<==== AGGIUNTA
        MsgBox "File trovato ed aperto", vbInformation
    Else

'        MsgBox "La richiesta non può essere soddisfatta perchè il file  '" & MyFile & MyValue & _
            "'  NON esiste nel percorso  '" & pathPDF & "'", vbInformation
' ricostruire il messaggio con la variabile pathPDF
    End If
End Sub
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 12/02/14 09:59

Grazie Richy
funziona.
Le modifiche? Erano tentativi per risolvere il problema.
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

Re: [Excel] Macro personalizzata per salvare in PDF

Postdi elios66 » 01/03/14 19:19

Ciao, rieccomi..
qualcuno potrebbe aiutarmi a richiamare la macro che mi ha proposto ricky, che funziona perfettamente, da un'altra macro? Mi restituisce errore: Sub o Funzione non definita.
Aspetto
Ciao
Win 8 - Office 2010

http://www.filedropper.com/
elios66
Utente Junior
 
Post: 48
Iscritto il: 04/02/14 18:32

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro personalizzata per salvare in PDF":


Chi c’è in linea

Visitano il forum: albval, Zer0Kelvin e 23 ospiti