avrei bisogno di fare una cosa un po' complicata...
Ho una cartella (Cartella1) con all'interno un file excel e un file word.
Nel file excel sono presenti certi valori disposti su righe e nel file word ci sono certi segnalibri.
Ho bisogno di una macro nel foglio excel che:
per un numero determinato di righe di excel
crei una sottocartella di Cartella1 con il nome presente nella prima cella della riga del foglio excel
apra il file word con i segnalibri (presente in Cartella1)
inserisca nel file word in corrispondenza dei segnalibri i valori presenti nella riga del foglio excel
salvi nella sottocartella il file word con il nome presente nella prima cella della riga del foglio excel (cioè lo stesso nome della sottocartella)
salvi nella sottocartella il file anche in pdf (sempre con lo stesso nome).
Posto quanto ho già fatto:
- Codice: Seleziona tutto
Sub GeneraFileTramiteSegnalibri()
On Error GoTo RigaErrore
Dim objWord As Object
Dim objDoc As Object
Dim Percorso As String
Dim NomeFile As String
Dim sh As Worksheet
Dim RigaUltimoNome As Integer
Dim NumRiga As Long
Set sh = ThisWorkbook.Worksheets("Foglio2")
' utilizzo il file su più pc quindi
' ho inserito una cella con menù a tendina dal quale ogni volta indicherò il percorso corretto
' sono stata attenta a scrivere il percorso con \ finale!!!
Percorso = [J6].Text
NomeFile = "File con segnalibri.doc"
With sh
RigaUltimoNome = [B22].Value + 1
Set objWord = CreateObject("Word.Application")
For NumRiga = 2 To RigaUltimoNome
If Dir(Percorso) <> "" Then
Set objDoc = objWord.Documents.Open(Percorso & NomeFile)
objDoc.Bookmarks("Nome").Range.Text = .Range("B" & NumRiga).Value
objDoc.Bookmarks("Indirizzo").Range.Text = .Range("C" & NumRiga).Value
objDoc.SaveAs (Percorso & .Range("B" & NumRiga).Value & ".doc")
objWord.Visible = True
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
Percorso & ActiveDocument.Name & ".pdf", ExportFormat:=wdExportFormatPDF, _
OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
True, UseISO19005_1:=False
objDoc.Close
Set objDoc = Nothing
End If
Next
End With
RigaChiusura:
If Not objWord Is Nothing Then
objWord.Quit
Set objWord = Nothing
End If
Set WordApp = Nothing
MsgBox "FILE GENERATI!"
Exit Sub
RigaErrore:
MsgBox Err.Number & vbNewLine & Err.Description
Resume RigaChiusura
End Sub
Va tutto bene tranne:
- nel nome del file pdf compare".doc"
- i file vengono salvati in Cartella1
Qualcuno può aiutarmi a correggere il codice?
GRAZIE