VBA per la sostituzione di segnalibri word con valori di celle excel utilizzandoprblemi con macro

Anonimo
2014-09-27T12:15:50+00:00

Salve a tutti sto utilizzando VBA per la sostituzione di segnalibri word con valori di celle excel utilizzando la seguente macro....

Sub Macro1()

'

' Macro1 Macro

' Macro registrata il 26/09/2014 da PANCIERA ROBERTO

'

    Sheets("Lineare").Select

Stringa001 = Range("A1").Value

Stringa002 = Range("C2").Value

Stringa003 = Range("C3").Value

............ eccetera

Stringa195 = Range("A132").Value

Stringa196 = Range("A133").Value

Const sFILENAME As String = "C:\Prova\Copertina.doc"

Set wrdApp = CreateObject("Word.Application")

wrdApp.Visible = True

Set wrdDoc = wrdApp.Documents.Open(sFILENAME)

With wrdDoc

.Bookmarks("X001").Range.Text = Stringa001

.Bookmarks("X002").Range.Text = Stringa002

.Bookmarks("X003").Range.Text = Stringa003

............ eccetera

.Bookmarks("X195").Range.Text = Stringa195

.Bookmarks("X196").Range.Text = Stringa196

    Sheets("Sel").Select

End With

End Sub

Io ho creato il file Copertina.doc all`interno del documento vi sono deei segnalibri ognuno con la prorpia denominazione...rispettivamente X001    -   X002   -    X003     eccetera

il problema e` la macro si blocca proprio alla linea

.Bookmarks("X001").Range.Text = Stringa001

come se non trovasse il rispettivo segnalibro in word....

la cosa stranissima e` che, sempre nello stesso foglio di excel, ho un altra macro collegata ad un altro documento word

e questa e` FUNZIONANTE e mi sostituisce 193 campi (percio 196 campi non dovrebbero essere un problema)

sto impazzendo..... grazie per una risposta

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-09-27T14:17:03+00:00

...

sto impazzendo..... grazie per una risposta

Per verificare se effettivamente tutti i segnalibri che andrai a compilare sono presenti nel documento puoi far girare la macro allegata, dopo aver indicato il file da controllare nella riga evidenziata.

Sarebbe buona cosa, comunque, inserire una gestione degli errori per gestire proprio questi piccoli problemi. Sempre la macro allegata potrà essere d'aiuto anche in questo senso.


Public Sub ListWordBookmarks()

Dim wdApp As Object, wdDoc As Object, wdBmk As Object

Dim sFileName As String

Dim lRow As Long

  On Error GoTo Uffa

sFileName = "C:\Cartella\Documento.docx"

  '--- get word object

  On Error Resume Next

   Set wdApp = GetObject(, "Word.Application")

   If Err.Number Then Set wdApp = CreateObject("Word.Application")

   Err.Clear

  On Error GoTo 0

  Set wdDoc = wdApp.Documents.Open(sFileName, AddToRecentFiles:=False, Visible:=False)

  With ThisWorkbook.Worksheets.Add

    lRow = lRow + 1

    .Cells(lRow, 1).value = "Bookmark Name"

    .Cells(lRow, 2).value = "Bookmark Contents"

    For Each wdBmk In wdDoc.Range.Bookmarks

      lRow = lRow + 1

      .Cells(lRow, 1).value = wdBmk.Name

      .Cells(lRow, 2).value = wdBmk.Range.text

    Next

    .UsedRange.Columns.AutoFit

  End With

ExitHere:

  Application.StatusBar = False

  If Not wdDoc Is Nothing Then wdDoc.Close

  If Not wdApp Is Nothing Then wdApp.Quit

  Set wdDoc = Nothing: Set wdDoc = Nothing: Set wdApp = Nothing

  Exit Sub

Uffa:

  On Error Resume Next

  Call MsgBox("Ohibò, si è verificato il seguente errore: " & vbNewLine & _

              CStr(Err.Number) & ": " & Err.Description & vbNewLine & vbNewLine & _

              "Bookmark in elaborazione: " & wdBmk.Name, _

              vbCritical + vbOKOnly, "Error message")

   Resume ExitHere

End Sub


La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2014-10-17T10:48:43+00:00

Ho trovato il problema. ...

Usavo due diversi computer per programmare. ...

Con differenti versioni di office.

Inoltre utilizzavo su uno dei due computer la tastiera settata in inglese (us)...

Percio l'x001 scritto con la tastiera italiana non è lo stesso del x001 scritto con la tastiera americana. ...

Misteri  di microsoft....

La risposta è stata utile?

0 commenti Nessun commento

0 risposte aggiuntive

Ordina per: Più utili