cs_into
Messages postés41Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention 6 mars 2007
-
30 janv. 2007 à 16:43
cs_into
Messages postés41Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention 6 mars 2007
-
31 janv. 2007 à 09:11
Voila j'ai ce code dans la form vidéo.form1 il doit me permettre de récupérer les propriétés d'un doc word(je l'ai trouvé sur ce site)
seulemnt j'ai une erreur a la variable "hwnd"(surligné en rouge) et on me dit qu'elle n'est pas membre de vidéo.form1!
je ne comprend pas pourquoi pouvez-vous m'aidez svp!!
je sature!
si vs avez un code plu simple pour récupérer un doc word en gardant ses proriété je suis preuneur!
merci
'pour + d'info sur cette api veuillez consulter sa source disponible sur ce site ou dans la compil
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 30 janv. 2007 à 18:23
Dsl, je n'avais pas vraiment regarder ton programme tout à l'heure.
Alors plusieurs points ne vont pas.
- D'abords, tu utilise un objet Word pour lire ton document. Mais pour pouvoir l'utiliser, il faut créer une instance de cet objet en utilisant le mot clé New. Soit directement dans la déclaration (comme j'ai fais dans le code ci dessous) soit explicitement à l'execution en rajoutant une ligne msword = New Word.Application
- Ensuite tu veux ouvrir, j'imagine, le document dont le chemin est passé par la variable file. Dans ce cas, il ne faut pas le mettre en dur dans le code. De plus, c'est la source de ta second erreur, tu ne peux pas associer directement le nom du fichier à ton objet msword. Il faut utiliser les methodes de ton objet pour lui dire d'aller ouvrir le document voulu.
- Ton document, pour etre associé à ton objet msword et donc manipulable par lui, doit etre ouvert par lui. En utilisant la commande Shell, tu vas, ici, ouvrir un second exemplaire du document, mais il ne sera pas accessible par msword. Donc la commande Shell est inutile.
- Ensuite j'ai corriger 2/3 trucs dans le code et enfin j'ai rajouter la fermeture de l'application Word. Car si tu ne le fais pas, elle reste ouverte, et comme elle n'a pas été affichée à l'écran, elle ne se voit pas et tu ne le sais pas. Il faut systématiquement penser à la fermer.
On obtient donc un code comme celui-ci, à toi de le paufiner pour crrespndre à tes besoins :
Public Sub getworddocproperties(ByVal file As String)
'crée un objet
microsoft word
Dim msword As New Word.Application
'ouvre le fichier
msword.Documents.Open(file)
'beaucoup d'autres propriété sont
disponibles
MessageBox.Show("il y a " + CStr(msword.ActiveDocument.Paragraphs.Count) & " paragraphes dans le document " & file)
' Ne pas
oublier de fermer l'application Word, sinon elle reste en
mémoire
msword.Quit()
End Sub
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
cs_into
Messages postés41Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention 6 mars 2007 30 janv. 2007 à 17:16
j'ai fait les modif que vous m'avez conseillé ("casy") mais bon maintenat j'ai une erreur "Impossible d'effectuer un cast d'un objet de type 'System.String' en type 'Word.Application'." donc voilà je nage dans le bonheur!
cs_into
Messages postés41Date d'inscriptionmardi 23 janvier 2007StatutMembreDernière intervention 6 mars 2007 31 janv. 2007 à 09:11
Bonjour a Vous Casy !!!
Je dois "te tirer un grand coup de pied dans le chapeau "(comme dirait Nicolas Cantelou)!Grâce vos explication mon code fonctionne...
Je ne sais comment vous remercier!
Mais où avez-vous appris tous ces petits points?
Ma journée commence bien grâce à àvous!
encore merci