› Sviluppare funzionalita su Microsoft Office con VBA › Salvataggio di un PDF anche con la data oltre con il nome e cognome.
-
AutoreArticoli
-
Buongiorno a tutti,
ho fatto una piccola routine per il salvataggio di un PDF con il nome che prende dalla cella B18, la mansione che prende dalla cella D18, ora vorrei che mi salvasse il PDF anche con la data che recupera dalla cella H4, ho sicuramente sbagliato qualcosa nel codice; inoltre vorrei che mi salvasse direttamente in una cartella predefinita senza che ogni volta io debba indicare il percorso.
Grazie a tutti,
in allegato il file di esempio.
Massimiliano
Sub Saveaspdfandsend() Dim xSht As Worksheet Dim xFileDlg As FileDialog Dim xFolder As String Dim xYesorNo As Integer Dim xOutlookObj As Object Dim xEmailObj As Object Dim xUsedRng As Range Dim X As String Dim Y As String Dim Z As Date X = Range("B18").Value Y = Range("D18").Value Z = Range("H4").Value Set xSht = ActiveSheet Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker) If xFileDlg.Show = True Then xFolder = xFileDlg.SelectedItems(1) Else MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder" Exit Sub End If xFolder = xFolder + "\" + X + Z + ".pdf" ' vorrei aggiungere anche la data che si trova nella cella H4 'Check if file already exist If Len(Dir(xFolder)) > 0 Then xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _ vbYesNo + vbQuestion, "File Exists") On Error Resume Next If xYesorNo = vbYes Then Kill xFolder Else MsgBox "if you don't overwrite the existing PDF, I can't continue." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro" Exit Sub End If If Err.Number <> 0 Then MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File" Exit Sub End If End If Set xUsedRng = xSht.UsedRange If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then 'Save as PDF file xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard End If End SubAllegati:
You must be logged in to view attached files.xFolder = xFolder + "\" + X + Z + ".pdf"Non puoi 'passare' la variabile Z così com'è, la data contiene il carattere / non ammesso nei nomi dei file.
Devi convertire la / in - (o anche niente) prima che la Z arrivi alla riga di codice, per esempio:
Z = Replace(Range("H4").Value, "/", "-")Qui invece del second xFolder ci metti il percorso fisso e disattivi le precedenti 6 righe di codice (quelle dove chiedi il percorso e lo verifica).
xFolder = xFolder + "\" + X + Z + ".pdf"Ho fatto come mi hai detto,
ho cambiato anche la variabile Z da Date a String, altrimenti non funzionava.
Grazie per il suggerimento!
Sub Saveaspdfandsend() Dim xSht As Worksheet Dim xFileDlg As FileDialog Dim xFolder As String Dim xYesorNo As Integer Dim xOutlookObj As Object Dim xEmailObj As Object Dim xUsedRng As Range Dim X As String Dim Y As String Dim Z As String Z = Replace(Range("H4").Value, "/", "-") X = Range("B18").Value Y = Range("D18").Value Set xSht = ActiveSheet Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker) xFolder = ("\\xxx-xxx-xxx\PDF Inviati") + "\" + X + Z + ".pdf"ho fatto una piccola routine per il salvataggio
Scusa, ma visto che hai scritto questo pensavo che ti bastasse solo una spintarella. Allora intendevi "ho messo insieme questo codice alla buona".
Ho aggiornato il mio post precedente.
Ma hai indicato un valido percorso (fisso) esistente ? perché a me non da problemi.
Grazie Karma,
avevo dimenticato di cambiare la variabile "Z" da Date a String 🙂
-
AutoreArticoli
