Phénomène bizarre lors de la manipulation de Word avec VB6

Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005 - 22 juin 2005 à 11:30
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005 - 22 juin 2005 à 14:10
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 :

WordApp.Run("mamacro")




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.



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




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 :



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



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 ?

2 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
22 juin 2005 à 14:04
A mon avis il faut que ta macro MaMacro ferme ton .doc et quitte word pour rendre la main à VB

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
'la syntaxe n'est peut etre pas exacte
call activedocument.close(true)
application.quit
End Sub
0
Dinbougre Messages postés 48 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 22 juin 2005
22 juin 2005 à 14:10
merci de la réponse.



bizarrement il est passé aujourd'hui.. je ne saurai l'expliquer, le
code est identique à hier... peut être un process planté de Word qui
tournait à ce moment et causait cette perturbation...



ça marche comme il le faut à l'exception d'une dernière chose :
lorsqu'il m'ouvre le fichier texte pour en afficher le contenu, il
m'affiche une boite de dialogue me demandant de sélectionner le
séparateur de champs et d'enregistrement... serait il possible de lui
donner une valeur par défaut ? parceque mon code VB6 génére pas loin de
800 fichiers et je vois mal un utilisateur appuyer 800 fois sur ENTREE
pour valider le choix ...



Merci
0
Rejoignez-nous