oregon ha scritto:
Usa i tag CODE per il codice, vedi regolamento.
Devi impostare un ciclo For subito dopo la Open che si concluda subito dopo la Save.
Scusa, ecco fatto. So cosa si deve fare nella teoria, sto studiando da 2 settimane il VBA, ma nella pratica non riesco a farlo, sto imparando tutto da solo ed è una sfida abbastanza difficile per me. Per convertire gli attestati in PDF ho letto che dovrei usare il metodo ExportAsFixedFormat dell'oggetto Document, ma ho fatto diverse prove e quando eseguo il sub mi da sempre errore. Riusciresti ad aiutarmi a correggere il codice?
Option Explicit
Public URec As Long
Public x As Byte
Const Path As String = "C:\Prove\Word\"
Const FileWord As String = "Baseok.docx"
Sub Copia_su_Word()
On Error GoTo 10
Application.ScreenUpdating = False
Dim FileDoc As String
Dim wrdApp, wrdDoc
Dim I As Long
Const sFILENAME As String = Path & FileWord
If ActiveCell.Row < 6 Or ActiveCell.Row > Range("A" & Rows.Count).End(xlUp).Row Then End
FileDoc = Path & Cells(ActiveCell.Row, 5)
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Open(sFILENAME)
With wrdDoc
.Bookmarks("Cognome").Range.Text = Cells(ActiveCell.Row, 3) ' Cognome
.Bookmarks("Nome").Range.Text = Cells(ActiveCell.Row, 4) ' Nome"
.Bookmarks("Data").Range.Text = Cells(ActiveCell.Row, 7) ' Data"
.Bookmarks("Luogo").Range.Text = Cells(ActiveCell.Row, 6) ' Luogo"
End With
wrdApp.ActiveDocument.SaveAs Filename:=FileDoc
wrdApp.Quit
Application.ScreenUpdating = True
Cells(ActiveCell.Row + 1, 3).Select
Application.ScreenUpdating = True
For I = 0 To 100
If Cells(I, 3) = "" Then
Exit Sub
End If
Cells(I, 2) = Cells(I, 1)
Next I
10:
End Sub