
Sub Salva_file_PDF()
'
' Salva_file_PDF Macro
'
'Dim p As String
Dim vn As String
Dim n As String
p = ActiveDocument.Path
vn = "vecchionomefileaperto"
n = ActiveDocument.Bookmarks("NOME").Range.Words(1).Text
If n = "" Then
ChangeFileOpenDirectory p & ""
ActiveDocument.ExportAsFixedFormat OutputFileName:=p & "" & vn & ".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
Else
ActiveDocument.ExportAsFixedFormat OutputFileName:=p & "" & n & ".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
End If
End Sub
|
n = ActiveDocument.Bookmarks("NOME").Range |
n = ActiveDocument.Bookmarks("NOME").Range.Text sia
n = ActiveDocument.Bookmarks("NOME").Range
DEBUG
Variabili Locali
Espressione Valore Tipo
i "" String |
Sub Pulsante537_Click()
'Dim ReplSel As Boolean
Dim path As String
Dim Stringa1 As String
Dim Stringa2 As String
Dim Stringa3 As String
Dim Stringa4 As String
path = ActiveWorkbook.path
'On Error Resume Next 'gestione errori step by step
'cerca istanza di Word già aperta
'Set Wrd = GetObject(, "Word.Application")
'Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
' PercorsoStandard = "C:" 'inserisci il percorso che desideri aprire di default
'With fDialog
' .AllowMultiSelect = False
' .Title = "Cerca il file carta_intestata_SI_compilata.doc"
' .InitialFileName = PercorsoStandard
' If .Show = -1 Then
' For Each selezione In .SelectedItems
' FileDaAprire = selezione
' ActiveWorkbook.FollowHyperlink Address:=FileDaAprire
' Next
' Else
' MsgBox "Caricamento annullato!", vbInformation 'quanto premi ‘cancella’ la macro si stoppa
' Exit Sub
' End If
'End With
'If Err.Number = 429 Then
'se c'è stato un errore è perchè Word non era già aperto:
'aprilo adesso
'Set Wrd = CreateObject("Word.Application")
'End If
'On Error GoTo 0 'ripristina la segnalazione degli errori
Wrd.Visible = True
Wrd.Activate
'ReplSel = Wrd.Options.ReplaceSelection
'Wrd.Options.ReplaceSelection = True
Set Doc = Wrd.Documents.Open(path & "" & "carta_intestata_SI_compilata.doc")
Stringa1 = Range("B3")
Stringa2 = Range("F3")
Stringa3 = Range("I10")
Stringa4 = Range("B10")
If Stringa1 & Stringa2 & Stringa3 & Stringa4 <> "" Then
Doc.Bookmarks("NOME").Select 'nome del segnalibro
Wrd.Selection.TypeText Range("B3").Value
Doc.Bookmarks("Indirizzo").Select 'nome del segnalibro
Wrd.Selection.TypeText Range("F3").Value
Doc.Bookmarks("Contatto").Select 'nome del segnalibro
Wrd.Selection.TypeText Range("I10").Value
Doc.Bookmarks("RACC_EMAIL").Select 'nome del segnalibro
Wrd.Selection.TypeText Range("B10").Value
Else
Exit Sub
'Wrd.Close
End If
'Dim Wrd As Object
' Dim path As String
' Dim x As Integer
' path = ActiveWorkbook.path
' Set Wrd = GetObject(path & "" & "carta_intestata_SI_compilata.doc")
' Wrd.Application.Visible = True
' Wrd.Activate
'
' Wrd.Bookmarks("NOME").Select
' Wrd.Bookmarks("NOME").Range = Range("B3").Value
'
' x = Len(Range("B3").Value)
' Wrd.Bookmarks.Selection.MoveRight Unit:=wdCharacter, Count:=x, Extend:=wdExtend
' Wrd.Bookmarks.Add Range:=Wrd.Application.Selection.Range, Name:="NOME"
'End Sub |
for each b in activedocument.Bookmarks: ?b.name, b.Start, b.end: nexte ho ottenuto l'elenco dei quattro bookmarks memorizzati dove si vede che il carattere di inizio e di fine coincidono: per esempio il segnalibro NOME inizia e termina al carattere numero 9 del testo (subito dopo Spett.le + tab, dove il tab è il nono carattere).
Option Explicit
Sub Pulsante537_Click()
Dim wdApp As Object, wdDoc As Object
Dim ReplSel As Boolean
Dim myPath As String
myPath = ActiveWorkbook.path
On Error Resume Next 'gestione errori step by step
'cerca istanza di Word già aperta
Set wdApp = GetObject(, "Word.Application")
'Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
' PercorsoStandard = "C:" 'inserisci il percorso che desideri aprire di default
'With fDialog
' .AllowMultiSelect = False
' .Title = "Cerca il file carta_intestata_SI_compilata.doc"
' .InitialFileName = PercorsoStandard
' If .Show = -1 Then
' For Each selezione In .SelectedItems
' FileDaAprire = selezione
' ActiveWorkbook.FollowHyperlink Address:=FileDaAprire
' Next
' Else
' MsgBox "Caricamento annullato!", vbInformation 'quanto premi ‘cancella’ la macro si stoppa
' Exit Sub
' End If
'End With
If Err.Number = 429 Then
'se c'è stato un errore è perchè Word non era già aperto:
'aprilo adesso
Set wdApp = CreateObject("Word.Application")
End If
On Error GoTo 0 'ripristina la segnalazione degli errori
ReplSel = wdApp.Options.ReplaceSelection
wdApp.Options.ReplaceSelection = True
Set wdDoc = wdApp.Documents.Open(myPath & "" & "carta_intestata_SI_compilata.doc")
'(es:"C:personalefile.doc")
wdApp.Visible = True
With wdDoc.Content.Find
.Execute FindText:="@NOME", ReplaceWith:=Range("B3"), Replace:=2 '2=wdReplaceAll
.Execute FindText:="@INDIRIZZO", ReplaceWith:=Range("F3"), Replace:=2
.Execute FindText:="@CONTATTO", ReplaceWith:=Range("I10"), Replace:=2
.Execute FindText:="@RACC_EMAIL", ReplaceWith:=Range("B10"), Replace:=2
End With
wdApp.Options.ReplaceSelection = ReplSel
'genera file pdf
'exportformat: 17 = PDF
'metti openafterexport := false per non aprire il pdf dopo la creazione
wdDoc.ExportAsFixedFormat myPath & "OFFERTA " & Range("B3"), ExportFormat:=17, OpenAfterExport:=True
MsgBox "Operazione completata", vbInformation
wdDoc.Close False
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub
|
