Voilà, je vais tentrer d'être le plus clair possible.
J'ai une appli VB6 qui ouvre un document .doc, remplace des signets à
l'intérieur de ce document puis ensuite exécute une macro enregistré
sous mon document word depuis VB6.
Depuis VB6, le code est très simple :
[code]WordApp.Run("mamacro")[/code]
Ma macro Word utilise en fait l'outil base de données de Word. La macro
ouvre un fichier de données au format txt et affiche les
enregistrements sous forme de tableau.
[code]Public Sub MaMacro()
Selection.Range.InsertDatabase Format:=0, Style:=0, LinkToSource:=False, _
Connection:="", SQLStatement:="" & "", PasswordDocument:="", _
PasswordTemplate:="", WritePasswordDocument:="", WritePasswordTemplate:= _
"", DataSource:= _
"c:\monFichierDeDonnees.txt" _
, From:=-1, To:=-1, IncludeFields:=True
End Sub[/code]
Lorsque j'exécute cette macro depuis Word, il m'affiche bien le contenu du fichier sous forme de tableau.
Depus VB6, il à l'air de passer la main à Word mais ensuite rien, rien
ne se passe. Si je re click sur mon programme VB6, il m'affiche une
fenêtre :
[quote]Une action ne peut être exécutée car le composant
MonFichierDoc.doc - Microsoft Word ne répond pas. Choisissez "Basculer
vers" pour activer le composant et corriger le problème[/quote]
Si je click sur "Basculer vers" il m'affiche word mais je ne peux rien y faire.
En revanche si je met un point d'arrêt sur mon code VBA et que je fais
du pas à pas. VB6 exécute bien la macro et le code s'arrête au niveau
du point d'arrêt de ma macro VBA, donc il rentre bien dans la procédure
et comme par miracle il affiche bien le contenu du fichier sous forme
de tableau... mais uniquement quand j'ai mit un point d'arrêt dans mon
code. Bizarre non ?
Savez vous pourquoi ?