Condividi:        

Archiviare selezione in formato .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

Archiviare selezione in formato .pdf

Postdi Carletto Ribolla » 15/04/24 12:49

Buon giorno a tutti.
Con un codice VBA, com’è possibile archiviare (in formato .pdf, in una cartella denominata “CONTEGGIO_ACQUA”) i dati nell’area “B2:N47” del foglio di lavoro "NUOVO_CONTEGGIO"?

PS: in cella A180 sta scritto il nome del file da archiviare.

Grazie in anticipo per eventuali suggerimenti.
Carletto Ribolla
Utente Junior
 
Post: 14
Iscritto il: 27/07/19 21:03

Sponsor
 

Re: Archiviare selezione in formato .pdf

Postdi Anthony47 » 15/04/24 16:22

Prova con questa macro:
Codice: Seleziona tutto
Sub EsportArea()
Dim SalvaSu As String
'
SalvaSu = "C:\PROVA\"                       '<<< La TUA directory di salvataggio (\ finale)
'
On Error Resume Next
Kill SalvaSu & Range("A180") & ".pdf"       'Cancella file con lo stesso nome
On Error GoTo 0
Application.Wait (Now + TimeValue("0:00:03"))
'
'Procede col salvataggio:
Sheets("NUOVO_CONTEGGIO").Select
Sheets("NUOVO_CONTEGGIO").PageSetup.FitToPagesWide = 1
Range("B2:N47").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    SalvaSu & Range("A180") & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Beep
End Sub

Il codice va inserito in un Modulo standard del tuo vba; aggiorna la riga marcata con <<<, immagino debba usare C:\CONTEGGIO_ACQUA\
Fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19230
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Archiviare selezione in formato .pdf

Postdi Carletto Ribolla » 15/04/24 18:29

Grazie per avermi risposto e per il suggerimento.
Ho apportato la modifica indicata ma purtroppo il codice non si completa: bene fino alla riga "Sheets("NUOVO_CONTEGGIO").PageSetup.FitToPagesWide = 1"
poi si evidenzia di giallo la parte sottostante, partendo da "Range("B2:N47")...."

Codice: Seleziona tutto
Sub EsportArea()
Dim SalvaSu As String
'
SalvaSu = "C:\Users\user\Desktop\CONTEGGIOACQUA\Archivio_Conteggio_Acqua\"          '<<< La TUA directory di salvataggio (\ finale)"
'
On Error Resume Next
Kill SalvaSu & Range("A180") & ".pdf"       'Cancella file con lo stesso nome
On Error GoTo 0
Application.Wait (Now + TimeValue("0:00:03"))
'
'Procede col salvataggio:
Sheets("NUOVO_CONTEGGIO").Select
Sheets("NUOVO_CONTEGGIO").PageSetup.FitToPagesWide = 1
Range("B2:N47").ExportAsFixedFormat Type:=xlTypePDF, filename:= _
    SalvaSu & Range("A180") & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Beep
End Sub


Ti lascio invecie il codice che nel frattempo mi ero dilettato a registrare; che funziona correttamente, solo che non riesco a capire come agganciare il nome del file al contenuto della cella A180.

Codice: Seleziona tutto
Sub salvataggiopdf()
   
    Range("B2:N36").Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, filename:= _
        "C:\Users\user\Desktop\CONTEGGIOACQUA\Archivio_Conteggio_Acqua\PROVA.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
End Sub

Grazie in anticipo per la disponibilità e pazienza.
Carletto Ribolla
Utente Junior
 
Post: 14
Iscritto il: 27/07/19 21:03

Re: Archiviare selezione in formato .pdf

Postdi Anthony47 » 15/04/24 23:30

Per agganciare il nome file ad A180 devi trasformarlo come il mio codice (che noterai e' appunto simile al tuo); inoltre devi prevedere di cancellare un file con lo stesso nome, se esistente.
Che errore ti segnala?
Ti e' sempre andato in errore? Se una volta ha funzionato, e' possibile che quando rilanci la macro il primo file pdf sia aperto? Pertanto impossibile da cancellare e quindi impossibile da creare nuovamente.

Per gestire l'eventuale impossibilità a cancellare il file (se preesistente) ho modificato il codice come segue:
Codice: Seleziona tutto
Sub EsportArea2()
Dim SalvaSu As String
'
SalvaSu = "C:\PROVA\"                       '<<< La TUA directory di salvataggio
'
On Error GoTo GErr
myf = Dir(SalvaSu & Range("A180") & ".pdf")
If Len(myf) > 0 Then
    Kill SalvaSu & Range("A180") & ".pdf"       'Cancella file con lo stesso nome
End If
Application.Wait (Now + TimeValue("0:00:02"))
'
'Procede col salvataggio:
Sheets("NUOVO_CONTEGGIO").Select
Sheets("NUOVO_CONTEGGIO").PageSetup.FitToPagesWide = 1
Range("B2:N47").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    SalvaSu & Range("A180") & ".pdf", Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
GErr:
If Err.Number <> 0 Then
    MsgBox (Err.Description & vbCrLf & "Salvataggio non eseguito")
Else
    MsgBox ("Completato...")
End If
End Sub

Adesso se il file non puo' essere cancellato un messaggio avvisa e segnala il mancato salvataggio
Avatar utente
Anthony47
Moderatore
 
Post: 19230
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Archiviare selezione in formato .pdf

Postdi Carletto Ribolla » 16/04/24 13:18

Ho provato con il nuovo codice che mi hai suggerito. Il messaggio che appare è quello riportato nell'immagine allegata.
Immagine

in quest'altra immagine, invecie, l'errore che mi da quando lancio il codice che mi hai suggerito in precedenza.
PS1: l'errore lo ha dato dalla prima esecuzione.
Immagine

PS2: in fase di esecuzione codice, il file.pdf non è aperto -o meglio- non esiste proprio nella cartella "Archivio_Conteggio_Acqua".

Grazie.
Carletto Ribolla
Utente Junior
 
Post: 14
Iscritto il: 27/07/19 21:03

Re: Archiviare selezione in formato .pdf

Postdi Carletto Ribolla » 16/04/24 14:51

Un dettaglio che non ho evidenziato:
il contenuto della cella [A180] ovvero, il nome del file con cui vorrei archiviare, è quello riportato nella casella sottostante la descrizione "Periodo di riferimento" che vedi nella prima immagine.
... e se l'errore dipendesse dal formato?
Carletto Ribolla
Utente Junior
 
Post: 14
Iscritto il: 27/07/19 21:03

Re: Archiviare selezione in formato .pdf

Postdi Anthony47 » 16/04/24 15:33

Non capisco quale e' il contenuto di A180, ma se e' incompatibile con la sintassi ammessa da windows non dubito che qualche messaggio di errore salti fuori
Avatar utente
Anthony47
Moderatore
 
Post: 19230
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Archiviare selezione in formato .pdf

Postdi Anthony47 » 16/04/24 15:40

Se A180 contiene la stringa "dal 22/9/etc etc" allora tieni presente che ogni "/" e' interpretato come separatore di percorso, ma tu non hai quel percosro sul tuo filesystem
Prova usando "-" oppure "_": dal 22-9-2023 etc etc
Avatar utente
Anthony47
Moderatore
 
Post: 19230
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Archiviare selezione in formato .pdf

Postdi Carletto Ribolla » 16/04/24 19:24

Errore eliminato!
La questione stava appunto nel fatto che utilizzavo la barra obliqua.
Ora, con il trattino basso, entrambi i codici che mi hai suggerito funzionano correttamente.

Grazie per la soluzione, ma di più... per il tempo che mi hai riservato.
Carletto Ribolla
Utente Junior
 
Post: 14
Iscritto il: 27/07/19 21:03

Re: Archiviare selezione in formato .pdf

Postdi Anthony47 » 16/04/24 22:22

Usa comunque il secondo codice, ha piu' gestione di possibili errori
Avatar utente
Anthony47
Moderatore
 
Post: 19230
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Archiviare selezione in formato .pdf":


Chi c’è in linea

Visitano il forum: Nessuno e 27 ospiti