Pb avec un Ole Container

thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006 - 25 févr. 2004 à 10:58
thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006 - 25 févr. 2004 à 15:18
Bonjour,

Voila j'ai une form qui contient un ole container. Quand je clique sur un bouton ou que je double clique dessus, ça m'ouvre word. Donc je rentre du texte, et je veux que quand je clique sur un autre bouton, cela me sauvegarde mon texte dans un document word.
Car ensuite, je veux pouvoir reprendre ce document (donc en .doc normalement) dans une autre application.

Quel est le code pour la sauvegarde?

Merci

9 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
25 févr. 2004 à 13:40
Ole1.update

A+
0
thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006
25 févr. 2004 à 13:56
Oui mais avec un ole.update, ça va me sauvegarder mon texte en un fichier.doc ?
Et je peux choisir où cela va le sauvegarder et avec quel nom?

Merci
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
25 févr. 2004 à 14:08
Reprenons depuis le début.
Si tu utilise en OLE container, tu fais un lien avec une application (word par exemple). Si tu veux sauver ton document, tu sais le faire qu'à partir de word.
Pour faire ce que tu désire, il y 2 possibilités:
1) Tu crées d'abord un fichier que tu ouvres ensuite via ton ole container afin de saisir ton texte;

2)Tu utilise le format RTF et tu pourras utiliser l'objet RichTextBox pour éditer et sauver ton texte.

A+
0
thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006
25 févr. 2004 à 14:34
OK merci.
Donc si j'ai bien compris, il faut que je créé un document word.
Ensuite je l'ouvre dans mon objet OLE.
Puis après je fais OLE.update, et mon fichier .doc sera mis à jour avec les modifications que j'ai faite dansmon objet OLE.

Donc j'ai encore une question bête, puis-je créér un document word vide à partir de VB?

Merci gaa179 pour ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
25 févr. 2004 à 14:37
Oui,

Pas de problème.
Dim MyWOrdDoc as object
Set myWordDoc = createoject(("Word.Document")
myWordDoc.SaveAs Path, wdFormatDocument

A+
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
25 févr. 2004 à 14:39
Il faut fermer word avant d'ouvrir ton ole.

MyWordDoc.close
OLE1.CreateLink path de ton fichier doc

A+
0
thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006
25 févr. 2004 à 14:53
Excuse moi encore, mais j'ai encore un problème. Vila mon code:

Private Sub Form_Load()
FileName = "C:\toto.doc"
Dim MyWOrdDoc As Object
Set MyWOrdDoc = CreateObject("Word.Document")
MyWOrdDoc.SaveAs FileName
OLE1.CreateEmbed FileName

End Sub

Private Sub Command1_Click()
OLE1.Update
End Sub

Avec ce code là, cela ne marche pas. Et lorsque je remplace ole1.createembedfilename par ole1.create link filename, cela marche mais quand je quitte word, il me demande si je veux sauvegarder les changements.
Alors que moi je voudrais qu'il n'y ait pas de demande de sauvegarde, mais que la mise à jour se fasse par mon bouton et le ole1.update.

J'ai essayé de meetre word.application.displayalerts =false, mais ça ne marche pas.

Comment dois-je faire.

Merci

Excuse moi de toutes ces questions mais je ne suis pas super fort en VB...
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
25 févr. 2004 à 15:02
La différence entre CreateLink et CreateEmbedded, c'est que créatelink utilise un lien avec ton fichier source et que celui est directement mis à jour, tandisque l'autre méthode crée une copie de ton fichier que tu drevras mettre à jour.
Je pense que dans ton cas tu dois utiliser Embedded, mais que le problème vient du fait que word à toujours la main sur le document lorsque tu veux l'ouvrir.
Rajoute après MyWordDoc.close
Set MyWordDoc=nothing ou un un temps de pause.
Vérifie en debug que après le close le process WinWord.exe ait disparu (via task manager).
Sinon je n'ai pas d'idée lors de du Close, car personnelemnt j'utilise cette fonctionnalité pour mettre à jour le fichier si l'utilisateur le souhaite.

A+
0
thguillon Messages postés 33 Date d'inscription lundi 16 juin 2003 Statut Membre Dernière intervention 20 juin 2006
25 févr. 2004 à 15:18
OK merci.
Je crois que pour finir je vais me servir du createlink, et qu'il y aura confirmation de sauvegarde plutot qu'une mise à jour automatique.
Car si je mets un createembed, ça ne met pas à jour automatiquement.
Mais ce n'est pas grave.

Merci beaucoup pour ton aide.

Bonne journée
0
Rejoignez-nous