Condividi:        

Salva foglio in PDF in cartella personalizzata

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 foglio in PDF in cartella personalizzata

Postdi webstenet » 24/10/13 16:11

Ciao a tutti e complimenti per il forum sto trovando un sacco di informazioni e per uno come me che sta imparando è fantastico.

BRAVI!

Ora vi presento la mia prima richiesta d' aiuto:

Seguendo le indicazioni trovate su questo forum sono riuscito a creare il file PDF di un foglio di Excel 2010, sono riuscito anche a personalizzare il nome del file in automatico ma non riesco a capire come far creare una cartella in automatico se non esiste se invece esiste come salvare il file al suo interno.

so che non mi sono spiegato bene ma provo con un esempio:

io clikko sul pulsante della macro e lei in automatico genera il file pdf con nome personalizzato lo salva in una cartella che deve avere il nome dell'anno che recupera da una cella del foglio (es. Anno 2013) poi genera all'interno di questa cartella un'altra cartella col nome del mese che recupera sempre dalla stessa cella (es. Ottobre).

Le informazioni della data le ho nella cella "C6" del foglio "HOME" con la formula " =OGGI()"

naturalmente le cartelle le crea solo se non esistono poi continua ad usarle fino a che non cambia mese o anno.

il codice della mia macro ora è il seguente:

' PDF Macro
'
Dim sPath As String
Dim sNome As String

Application.DisplayAlerts = False
On Error Resume Next

With ThisWorkbook

sPath = .Path

With .Worksheets("HOME")

sNome = .Range("B5").Value & _
" " & .Range("C5").Value

.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=sPath & "\" & sNome & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True

End With


Ringrazio tutti già in antigipo.

Ciao
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Sponsor
 

Re: Salva foglio in PDF in cartella personalizzata

Postdi webstenet » 24/10/13 16:27

Aggiungo un'altra info,

mi sembra di aver capito che con questo comando:

sPath = .Path

salvo il file in nella stessa cartella del file di Excel e questa cosa mi piace perché posso tenere tutto su una chiavetta usb ed evitare di dare un percorso standard a tutte le cartelle che si creano.

grazie e ciao
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Re: Salva foglio in PDF in cartella personalizzata

Postdi Flash30005 » 24/10/13 16:44

Ciao Webstenet e benvenuto nel Forum
Rispondo al primo quesito :
creare una directory se non esiste
Codice: Seleziona tutto
If Dir(Perc & "Archivio", vbDirectory) = "" Then
    MkDir (Perc & "Archivio")
End If

Dove perc è il percorso che se si riferisce alla stessa directory del file puoi "intercettarlo" così
Codice: Seleziona tutto
Perc = ThisWorkbook.Path & "\"

Quindi alla fine potrai salvare il file nel percorso e cartella indicata (nel codice c'è "Archivio" che potrai sostituire con un nome a tuo piacere)

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salva foglio in PDF in cartella personalizzata

Postdi webstenet » 24/10/13 19:56

Ciao Flash3000 e grazie per la risposta.

ho già integrato il codice nella mia macro e funziona.

quello che cercavo però era avere la creazione automatica della cartella ma soprattutto del nome della cartella che deve essere preso da una cella che contiene la seguente funzione

=OGGI()

no so se mi sono spiegato bene

ciao e grazie
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Re: Salva foglio in PDF in cartella personalizzata

Postdi Anthony47 » 24/10/13 23:15

Come ha detto Flash, si tratta di sostituire "Archivio" con un path a tuo piacere.
Volendo usare una sintassi aaaa_mm (es 2013_10 per Ottobre 2013), sostituirai "Archivio" con
"\" & Format(Now(), "yyyy_mm")

Il "\" credo sia una dimenticanza di Flash.
Inoltre avendo tu gia' compilato una sPath, puoi convertire il codice in
Codice: Seleziona tutto
If Dir(sPath & "\" & Format(Now(), "yyyy_mm"), vbDirectory) = "" Then
    MkDir (sPath & "\" & Format(Now(), "yyyy_mm"))
End If

Dovrai anche modificare questa parte Filename:=sPath & "\" & sNome & ".pdf", _ in
Filename:=sPath & "\" & Format(Now(), "yyyy_mm") & "\" & sNome & ".pdf", _

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Salva foglio in PDF in cartella personalizzata

Postdi webstenet » 25/10/13 19:19

Anthony47, questa è quello che cercavo di fare ottimo.

grazie sia a te che a flash per l'aiuto.

ciaoooo
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Re: Salva foglio in PDF in cartella personalizzata

Postdi webstenet » 25/10/13 19:25

scusate volevo capire un'altra cosa se i volessi non creare la cartella legata al mese in cui faccio il salvataggio ma in base al mese in cui dato la fattura come posso cambiare il codice.

penso che devo cambiare qualcosa in questa stringa ma non so come

Filename:=sPath & "\" & Format(Now(), "yyyy_mm") & "\" & sNome & ".pdf", _

grazie.

ps. scusate la mia ignoranza ma io sto imparando Excel facendo esperimenti e cercando di capire leggendo il codice ecencando su internet le risposte ma la mia preparazione di base è molto scarsa.
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Re: Salva foglio in PDF in cartella personalizzata

Postdi Flash30005 » 27/10/13 02:32

Dovresti almeno dirci in quale cella c'è la data della fattura
altrimenti potrei darti solo questa informazione supponendo che la cella della data fattura sia A1
Codice: Seleziona tutto
Filename:=sPath & "\" & Format([A1], "yyyy_mm") & "\" & sNome & ".pdf", _


Non è difficile sostituire A1 con altra cella
se non riesci posta ancora

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Salva foglio in PDF in cartella personalizzata

Postdi webstenet » 27/10/13 15:27

GRAZIE 1000!!!

ho adattato io la tua stringa di programma e adesso funziona come la volevo io la macro.

grazie ora ho n'altro quesito ma aprirò un nuovo post.

ciaoooo
Webstenet
- Windows Server 2008 R2 Enterprise
- Microsoft Office 2010
webstenet
Utente Junior
 
Post: 20
Iscritto il: 24/10/13 14:30

Re: Salva foglio in PDF in cartella personalizzata

Postdi rfas » 10/04/15 10:40

Buongiorno, mi sono appena iscritto.
Ho necessità di creare file PDF da foglio di excel e di nominare tali files in funzione del contenuto di una cella.
Allo scopo ho creato questo codice che funziona bene:
Sub Salva_PDF()

Range("B13").Select
ChDir "Y:\WORK\DOCUMENT\EXCEL\Fatture"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Y:\WORK\DOCUMENT\EXCEL\Fatture\" & [B13] & ".pdf", Quality:=xlQualityMinimum, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub


Il problema è che vorrei creare, entro la cartella di destinazione (Fatture), anche delle sottocartelle che abbiano il nome della cella di excel e che a loro volta all'interno di ciascuna di esse abbiano il file PDF. Cioè vorrei creare una cartella "rossi" che contenga anche il file pdf "rossi" se nella cella di excel c'è il valore rossi e così via.

Per questo ho creato questo codice:

Sub Crea_cartella()
percorso = "Y:\WORK\DOCUMENT\EXCEL\Fatture"
ChDir percorso
MkDir [B13]
End Sub


Questo funziona, ma.... ho bisogno di inserire una condizione che non mi dia errore se devo creare una cartella che ha già lo stesso nome.

Es . devo creare una cartella "rossi" in cui vado a inserire il PDF "rossi". Se ho bisogno di inserire una seconda volta un'altro PDF "rossi" devo poterlo inserire non creando più la cartella "rossi" che è già presente. Invece col codice soprascritto mi dà evidentemente errore.

Spero di essere stato abbastanza chiaro, grazie!
rfas
Newbie
 
Post: 1
Iscritto il: 10/04/15 08:00


Torna a Applicazioni Office Windows


Topic correlati a "Salva foglio in PDF in cartella personalizzata":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti

cron