Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour !
J'ai un ole word connecté où plusieurs fichiers sont ouverts. J'arrive à faire toutes les manipulations entre mes fichiers avec l'écriture :
ole_word.Documents.item (2).Activate
Pas de problème me direz vous, sauf que j'ai du prendre en compte que dans Word mon fichier item 1 est en fait le fichier ouvert en deuxième. En gros, 1 devient 2 et 2 devient 1.
Donc pour éviter de me retrouver sur un poste où 1 serait bien 1 et 2 serait bien 2, je décide de faire mes manipulations avec les noms des fichiers. Et j'emploie la syntaxe suivante que j'ai déjà utilisé dans d'autres projets ... qui plante lamentablement :
ole_word.Document(ls_docname).Activate
J'ai essayé ls_docname avec et sans chemin et/ou extension. Quelqu'un aurait t'il une idée du pourquoi cela plante ? Merci d'avance.
Pour info, j'utilise PB12.0 build 6107 et Word 2003 SP3
Dernière modification par Sailor LVCV (23-11-2010 10:12:49)
Hors ligne
Bonjour collègue
As-tu essayé cette syntaxe:
ole_word.Documents(ls_docname).Activate
(Attention de ne pas confondre la collection Documents et la classe Document dans Word)
microsoft.office.interop.word.documents
Classe Document
Hors ligne
Non, car d'après l'explorateur d'objets de Visual Basic la propriété name est lié à Document et non à DocumentS.
Mais j'ai essayé quand même et ça plante ce qui est logique.
Merci quand même
Hors ligne
Bon, j'ai regardé un peu sur MSDN, mais je n'ai rien trouvé de très concluant.
Au pire, je te propose d'utiliser un tableau de correspondance lors de la création et sauvegarde de tes documents
te permettant de faire le lien entre le name de ton document et sont index dans la collection Documents.
Sinon, pour info, la propriété fullname contient le nom complet du document, y compris son chemin d'accès.
Hors ligne
Foon a raison :
ole_word.Documents.Item(ls_docname).Activate
Hors ligne
Merci, cela fonctionne
Hors ligne