Newsgroup: it.comp.lang.visual-basic
Titolo: Problemi su Activewindows o object di tipo word

Ciao a tutti, ho dovuto modificare una ruotine di stampa di un vecchio
programma per mettere un intestazione del documento stampato, dopo un
po' di smoccolamenti ho modificato il documento che uso e la procedura
ed il tutto ha funzoinato sin troppo presto.
Non avendo la più pallida idea di come gestire le intestazioni word mi
sono affidato ciecamente delle macro di word che però mi da
evedintemente qualche problema... Alla prima stampa tutto bene, ma se
ne faccio un' altra mi da un errore
Errore di runtime '462' "il compuer server remoto non esiste o non è
disponibile" su una
  If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
che onestamente non so cosa faccia
A questo punto mi trovo nella cartella del documento il file
temporaneo di word ~$documento.doc che devo cancellare se voglio
ripetere l'operazione (ma qui e word che ha modifiche in sospeso, ci
sta...)
Sotto la procedura, almeno la parte significativa, tra i 2 commenti
l'aggiunta. Qualcuno sa dirmi cosa succede e magari come evitarlo.
Dim wrdApp As Object
Dim wrdDoc As Object
Dim wrdSel As Object
Set wrdApp = CreateObject("word.application")
wrdApp.Documents.Open (FileDoc1)
'Imposto intenstazione... o almeno ci provo
  If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
     ActiveWindow.Panes(2).Close
  End If
  If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow.
_
     ActivePane.View.Type = wdOutlineView Then
     ActiveWindow.ActivePane.View.Type = wdPrintView
  End If
  ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
  Selection.MoveRight Unit:=wdCharacter, Count:=8
  Selection.EndKey Unit:=wdLine
  Selection.TypeText Text:=String(7 - Len(Trim(Str(WCODANA))), "0") &
Trim(Str(WCODANA))
  Selection.MoveRight Unit:=wdCell
  Selection.TypeText Text:=Trim(Trim(Nome) & " " & Trim(Cognome))
  ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
'Fine intestazione
wrdApp.Visible = False
wrdApp.WindowState = wdWindowStateMaximize
Set wrdDoc = wrdApp.Documents(1)
Set wrdSel = wrdApp.Selection
[...]
[Operazioni su documento]
[...]
wrdDoc.PrintOut
DoEvents
wrdDoc.Close False
wrdApp.Quit
Set wrdSel = Nothing
Set wrdDoc = Nothing
Set wrdApp = Nothing
Grazie a tutti, anche solo per l'attenzione

Girando qua e la e facendo un po di copia incolla e stropiccia di
qualche soluzione postata per problemi che avevano ache fare col mio
ho ho fatto le seguenti modifiche:
L'applicazione non la creo più con la createobj
Set wrdApp = CreateObject("word.application")
ma con
Set wrdApp = New Word.Application
in verità questo non ha risolto il problema, ma mi suona meglio...
anche se non mi è chiarissima la differenza tra i due metodi visto che
l'oggeto lo chiudo e poi lo imposto a nothing.
Quello che ha risolto il problema è stato sotituire nella parte nuovo
tutti i ActiveWindow.* con wrdDoc.ActiveWindow.* (la open lo sposta
sopra la parte incriminata ovviamente) e i Selection.* con
wrdDoc.ActiveWindow.Selection.*
         Set wrdApp = New Word.Application
         wrdApp.Documents.Open (FileDoc1)
         Set wrdDoc = wrdApp.Documents(1)
         Set wrdSel = wrdApp.Selection
      'Imposto intenstazione... o almeno ci provo
         If wrdDoc.ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            wrdDoc.ActiveWindow.Panes(2).Close
         End If
         If wrdDoc.ActiveWindow.ActivePane.View.Type = wdNormalView Or
wrdDoc.ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            wrdDoc.ActiveWindow.ActivePane.View.Type = wdPrintView
         End If
         wrdDoc.ActiveWindow.ActivePane.View.SeekView =
wdSeekCurrentPageHeader
         wrdDoc.ActiveWindow.Selection.MoveRight Unit:=wdCharacter,
Count:=8
         wrdDoc.ActiveWindow.Selection.EndKey Unit:=wdLine
         wrdDoc.ActiveWindow.Selection.TypeText Text:=String(7 - Len
(Trim(Str(WCODANA))), "0") & Trim(Str(WCODANA))
         wrdDoc.ActiveWindow.Selection.MoveRight Unit:=wdCell
         wrdDoc.ActiveWindow.Selection.TypeText Text:=Trim(Trim(!nome)
& " " & Trim(!cognome))
         wrdDoc.ActiveWindow.ActivePane.View.SeekView =
wdSeekMainDocument
     'Fine intestazione
Così funziona e tanto basta, ma se qualcuno sappesse spiegarmi cosa ho
fatto e perchè prima avevo quel problema sarebbe cosa gradita.