salve a tutti
ho un file word di template, in cui lo apro tramite vb6 e vado a modificare tutte le voci in base a quello che c'è nel database
il codice che uso è il seguente, ovviamente per ogni label da sostituire richiamo sempre sostituzione

il problema è che dopo diverse volte che uso questo metodo, il file di template si rovina

come posso fare per sostituire?

p.s.
nella sub sostituisci, faccio spesso riferimento a sostituzione, ma la richiamo per aprire l'header, sostituire, chiudere l'header
poi aprire footer, sostituire e chiudere footer
e cosi per la pagina successiva, in quanto word distingue dalla prima pagina alla seconda

codice:
Public Sub Sostituzione(da, a)
   With WordApp
 
 'sostituisce nella pagina
    .Selection.Find.ClearFormatting
    .Selection.Find.Replacement.ClearFormatting
    With .Selection.Find
        .Text = da '"ST_Codice AGESP_Titolo Esigenza_SC_20080715.doc"
        .Replacement.Text = a '"ddddddddd"
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    .Selection.Find.Execute Replace:=wdReplaceAll
  End With
  
   DoEvents
End Sub





Public Sub sostituisci(da As String, a As String)
On Error Resume Next
Call Sostituzione(da, a)
    WordApp.ActiveWindow.ActivePane.View.NextHeaderFooter
Call Sostituzione(da, a)
    WordApp.ActiveWindow.ActivePane.View.NextHeaderFooter
Call Sostituzione(da, a)
    If WordApp.Selection.HeaderFooter.IsHeader = True Then
        WordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Else
        WordApp.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    End If
Call Sostituzione(da, a)
    WordApp.ActiveWindow.ActivePane.View.NextHeaderFooter
Call Sostituzione(da, a)
    WordApp.ActiveWindow.ActivePane.View.PreviousHeaderFooter
Call Sostituzione(da, a)

'    InserisciVariabileWord da, a,
    DoEvents
End Sub