OVH Cloud OVH Cloud

VB et Ms Word

1 réponse
Avatar
Roger Renaud
J'ai développé une appplication qui ouvre un document word dans lequel je
complète un tableau. Tout fonctionne bien sauf si Word est déjà ouvert. Le
projet ne semble plus savoir à quel objet WORD se connecter. Mon système est
Windows XP Professionnel SP1.

Les lignes qui suivent indiquent comment je procède pour lancer le
processus.

Public wordApp As Word.Application
Set wordApp = CreateObject("WORD.APPLICATION")
wordApp.Documents.Open NomGabaritWord
Documents(NomGabaritWord).Activate

1 réponse

Avatar
Michel
Salut,

Voici comment je procède. Je regarde si Word est déjà en mémoire avant de
créer une nouvelle instance. m_WordWasRunning est une booléen au niveau du
module pour savoir si tu peux arrêter Word quand tu as fini ou si tu dois le
laisser (s'il était déjà chargé).

POUR LE CHARGER:

' Voir si Word est chargé en mémoire
On Error Resume Next
Err.Clear
Set objWord = GetObject(, "Word.Application")
If Err.Number = 0 Then
m_WordWasRunning = True
ElseIf Err.Number = 429 Then ' Le composant ActiveX ne peut pas créer
l'objet
m_WordWasRunning = False
Else
m_WordWasRunning = False
End If
Err.Clear

' Si Word n'est pas chargé, on essaie de la charger
If m_WordWasRunning = False Then
Set objWord = CreateObject("Word.Application")
If Err.Number <> 0 Then
Err.Raise vbObjectError + 9000, "HW32.clsWord8", "Can't create
Word.Application" & vbCrLf & "See HORECIEL.LOG for more information"
Unload Me
End If
End If

POUR TERMINER:

On Error Resume Next
If m_WordWasRunning = False Then
objWord.Quit
If Err.Number <> 0 Then
Err.Clear
Err.Raise vbObjectError + 9000, "HW32.clsWord8", "Can't unload
Word.Application" & vbCrLf & "See HORECIEL.LOG for more information"
End If
End If
Set objWord = Nothing
If Err.Number > 0 Then
Err.Raise vbObjectError + 9000, "HW32.clsWord8", "Can't unlink
Word.Application" & vbCrLf & "See HORECIEL.LOG for more information"
End If

J'espère que ceci aura fait avancer ton schmilblick...

Michel

"Roger Renaud" wrote in message
news:Z_0Jb.9259$%
J'ai développé une appplication qui ouvre un document word dans lequel je
complète un tableau. Tout fonctionne bien sauf si Word est déjà ouvert. Le
projet ne semble plus savoir à quel objet WORD se connecter. Mon système


est
Windows XP Professionnel SP1.

Les lignes qui suivent indiquent comment je procède pour lancer le
processus.

Public wordApp As Word.Application
Set wordApp = CreateObject("WORD.APPLICATION")
wordApp.Documents.Open NomGabaritWord
Documents(NomGabaritWord).Activate