Salve. Sto provando a strutturare una macro per stampare in maniera batch i pdf.
Il foglio che ho predisposto funziona in questo modo.
Ho messo una cella con una serie di valori (in forma tabellare su un'area del foglio) selezionabili con la "convalida dati" (gruppo di clienti) e selezionando il cliente desiderato tutti i campi dei valori del foglio mi si aggiornano correttamente.
Per esportare in pdf il foglio ho trovato questa macro che funziona correttamente (il nome del cliente viene preso dalla cella "J10").
Purtroppo l'appetito vien mangiando e mi si chiede di poter stampare anche in batch tutti i clienti.
Praticamente devo inserire un ciclo che selezioni il cliente dalla tabella, aggiorni il foglio (F9), e esporta il pdf.
Il problema è che non mi è mai capitato fare un ciclo su un'area di un foglio.
Come posso fare?
Grazie........
Option Explicit
'--------->>
Public Sub exp_pdf_ORD()
Dim WB As Workbook
Dim srcSH As Worksheet, nameSH As Worksheet
Dim rngNome As Range
Dim sPath As String, sSuffisso As String, sFilename As String
Const sPrefisso As String = "LIC_ORD_"
Const sFoglioSorgente As String = "STA_ORD"
Const sFoglioNome As String = "INS_ORD"
Const sCellaNome As String = "J10"
Const sEstensione As String = ".pdf"
Set WB = ThisWorkbook
With WB
sPath = .Path & ""
Set srcSH = .Sheets(sFoglioSorgente)
Set nameSH = .Sheets(sFoglioNome)
Set rngNome = nameSH.Range(sCellaNome)
sSuffisso = Format(rngNome.Value, "yyyy-mm-dd")
sFilename = sPath & sPrefisso & sSuffisso & sEstensione
srcSH.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
.Close SaveChanges:=False
End With
End Sub