ciao Anthony47 e grazie della risposta.
Hai ragione ho fatto un po di confusione.
Ora rispondo alle tue domande.
che senso ha salvare su disco due copie dello stesso file, uno come "...OR.pdf" e l'altro come "...CR.pdf"?
Quando le fatture vengono stampate hanno colori diversi di contorno: BLU per le OR e ROSSE per le CO.
Ti starai chiedendo perche non di un colore unico? Perchè lo trovo piu pratico da consegnare e conservare.
quale e' la logica per cui "se devo salvare una fattura di due fogli il pdf mi deve salvare i fogli che vanno da 1 a 4"?
Le fatture che compilo non sono tutte uguali ma certe volte sono composte da 1,2,3,4 o 5 pagine e di conseguenza avrei 1,2,3,4 o 5 pagine di fatture con il contorno BLU e 1,2,3,4 o 5 fatture di contorno ROSSO.
Comunque nel primo post che ho messo volevo far salvare in un unico pdf sia le rosse che legialle ma poi ho cambiato idea e ho optato per i due pdf.
Da dove si capisce quanti fogli ha la fattura?
Nel range "C21:P190" io compilo la fattura,ma questo range "C21:P190" non viene salvato in pdf.
Ogni pagina di fattura è composto da 34 righe e nel range "C21:P190" sono una dietro l'altra.
In automatico come compilo il range "C21:P190" mi vengono compilate le fatture che dovrei salvare in pdf che si trovano in altri range di celle.
Al completare le righe del primo foglio di fattura si compila la secoda e cosi sino alla quinta.
Per salvare solo le fatture e non tutto il foglio excel ho impostato le are di stampa.
da 1 a 5 sono le fatture BLU e da 6 a 10 le fatture ROSSE
Ora ti spiego cosa fanno le macro.
- Codice: Seleziona tutto
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If IsNumeric(Range("x1").Value) = True Then
Dim sh As Worksheet
Const cPathSalvataggio As String = "C:\Users\celestino\Desktop\Fatture\"
Application.DisplayAlerts = False
With Me
Set sh = .Worksheets("FATTURE")
.SaveAs cPathSalvataggio & sh.Range("E3")
End With
Application.DisplayAlerts = True
Set sh = Nothing
SalvaPDFOR
SalvaPDFCO
End If
End Sub
Questa macro funziona quando clicco per chiudere il file di excel(.xlsm).
Quando chiudo mi fa una copia del file excel(.xlsm) nella cartella FATTURE con nome file uguale a quello che c'è scritto nella cella E3 dove c'è una formula concatena.
ESEMPIO: il file dove scrivo le fatture è FATTURE.XLSM questa macro me lo salva nella cartella FATTURE in questo modo: Fattur 1 celestino.xlsm.
Il codice
- Codice: Seleziona tutto
If IsNumeric(Range("x1").Value) = True Then
quando in X1 non c'è critto nulla non mi fa partire la macro e il file di excel(.xlsm) quando lo chiudo si chiude senza salvarmi nulla.
In X1 ho la somma toale della fattura e se non scrivo nulla nel range "C21:P190" la cella mi resta vuota.
Sempre questa macro mi fa partire le due macro per salvare in pdf: SalvaPDFOR e SalvaPDFCO.
- Codice: Seleziona tutto
Sub SalvaPDFCO()
'
'
With ActiveWorkbook
If .Path = "" Then Exit Sub
pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & " CO" & ".pdf"
End With
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFile _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, From:=Range("u12"), To:=Range("v12"), OpenAfterPublish:=False
End Sub
- Codice: Seleziona tutto
Sub SalvaPDFOR()
'
'
With ActiveWorkbook
If .Path = "" Then Exit Sub
pdfFile = .Path & "\" & Left(.Name, InStr(.Name, ".") - 1) & " OR" & ".pdf"
End With
'
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFile _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, From:=Range("u11"), To:=Range("v11"), OpenAfterPublish:=False
End Sub
Queste due macro non fanno altro che salvarmi le fatture in pd; una per quelle ROSSE e una per quelle BLU.
Il fail sarebbe cosi: Fattura 1 Celestino CO.pdf e Fattura 1 Celestino.pdf
- Codice: Seleziona tutto
From:=Range("u11"), To:=Range("v11"),
From:=Range("u12"), To:=Range("v12"),
le celle U11 e V11 mi dicono quante pagine della fattura mi deve salvare in pdf per le fatture BLU mentre le celle U12 e V12 per quelle ROSSE.
Se io compilo 2 fogli della fattura la prima mi stamperà,( Per salvare solo le fatture e non tutto il foglio excel ho impostato le are di stampa,da 1 a 5 sono le fatture BLU e da 6 a 10 le fatture ROSSE) da 1 a 2 le fatture BLU, mentre l'altra da 6 a 7 le fatture ROSSE.
Spero di aver spiegato tutto.
Quindi le macro che ho nel foglio vanno bene?
Da le prime prove sembra che mi funzionino bene.
Grazie