Preciso che non sono pratica del VBA.
Detto questo, cerco di spiegarmi al meglio sul mio dubbio nel salvataggio dei fogli Excel in formato PDF.
Il codice allegato, esegue:
1- se la cartella non esiste, allora la crea all'interno della cartella dove si trova il file Excel.
2 - salva in pdf tutti i fogli "singoli" presenti nel file Excel, iniziando dal foglio n. 5 fino al penultimo foglio.
3- il nome che avrà ogni file pdf, viene preso concatenando il valore trovato nelle celle B13,H1,C13,H1,F3,G3 del singolo foglio
dandomi ad esempio questo risultato: Cod. Cliente 10 Fattura n.200, Cod. Cliente 11 Fattura n.201 - e così via.
Nella cella H1 ci sono due spazi che serve per separare il nome concatenato.
Questo codice che potete vedere non è stato creato da me, ma è frutto delle ricerche in rete e qualche mia modifica.
Augurandomi di essere stata chiara nel spiegare cosa fa il codice, arrivo al mio dubbio.
Quanndo salvo i file in pdf, i salvataggi vengono eseguiti alla perfezione.
Ciò che ho riscontrato è che la maschera di Excel, diventa bianco per il tempo necessario al salvataggio dei file, poi ritorna normale.
Questo potrebbe crearmi problemi, oppure è normale visto che si stanno salvando in file singoli oltre 100 fogli in pdf?
La mia paura è il fatto se il pc potrebbe andare in crash.
Grazie a tutti.............
by alessia
- Codice: Seleziona tutto
Private Sub CommandButton8_Click()
'Salva in singoli File tutte le fatture "Fogli" presenti nel file Excel.
'Ti crea una nuova cartella se non c'è, chiamata "Archivio Fatture", all'interno della cartella dove _
si trova il file originale, salvando tutti i file.
Dim salvapdf
salvapdf = MsgBox("Vuoi salvare tutte le Fatture nel formato Pdf ?", vbExclamation + vbYesNo, "ATTENZIONE. Stai per salvare in PDF !!!")
If salvapdf = vbYes Then
Dim objFso As Object
Dim objFolder As Object
Set objFso = CreateObject("Scripting.FileSystemObject")
If objFso.FolderExists(ActiveWorkbook.Path & "\Archivio Fatture\") Then
MsgBox "La cartella Archivio Fatture esiste già...", vbCritical, ("ATTENZIONE !!!")
Else
MsgBox "La cartella ''Archivio Fatture'' non esisteva." & Chr(13) & "Adesso che è stata creata... puoi salvare il file...", vbInformation, ("Nuova Cartella creata con successo... ")
Set objFolder = objFso.CreateFolder(ActiveWorkbook.Path & "\Archivio Fatture\")
End If
Set objFolder = Nothing
Set objFso = Nothing
Dim Variabile As Integer
Variabile = MsgBox("Premi OK per salvare il file...", vbOKCancel + vbExclamation)
If Variabile = 1 Then
Dim foglio As Variant
percorso = ActiveWorkbook.Path & "\Archivio Fatture\"
'Sheets(foglio).Select
Dim strPath As String, strNome As String
Dim i As Long
strPath = ActiveWorkbook.Path & "\Archivio Fatture\"
For i = 5 To Sheets.Count - 1 ' Selezionare i fogli da salvare in pdf. In questo caso, salva dal foglio 5 fino al penultimo.
strNome = Sheets(i).Range("b13") 'il file prende il nome contenuto nella cella B13,H1,C13,H1,F3,G3
strnome2 = Sheets(i).Range("h1")
strNome3 = Sheets(i).Range("c13")
strNome4 = Sheets(i).Range("h1") ' in H1 ci sono due spazi per separare il nome del file
strNome5 = Sheets(i).Range("f3")
strNome6 = Sheets(i).Range("g3")
' nella riga sottostante è specificato il Range da copiare in pdf.
Sheets(i).Range("A1:i58").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
strPath & strNome & strnome2 & strNome3 & strNome4 & strNome5 & strNome6 & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next i
MsgBox "Fatture salvate singolarmente in formato Pdf.", vbInformation, "Fatture salvate!"
CommandButton8.BackColor = 65535 '<--- Il pulsante si colora di giallo indicandomi così che è stato usato
End If
End If
End Sub