Erreur d'execution 462 lors du lancement successif d'une macro [Résolu]

Messages postés
7
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
31 janvier 2010
- - Dernière réponse : Flagin
Messages postés
7
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
31 janvier 2010
- 31 janv. 2010 à 17:33
Bonjour,

je suis bloqué depuis un certain temps sur un problème lors de la seconde exécution d'une macro excel ouvrant un document word : erreur 462 (http://support.microsoft.com/kb/q189618/). Des messages sur le sujet sont présents sur le forum mais je n'ai pas réussi à situer le problème dans mon code (joint plus bas).
L'erreur se produit parce que le code fait référence à un objet Range d'une section ActiveDocument sans faire précéder l'appel de la variable objet oWord.
Et là... je suis dépassé.

Si quelqu'un pouvait m'aider, je lui en serais très reconnaissant.

Je vous souhaite à tous, un excellent we.



Private Sub CommandButton1_Click()
' Transfert des données Word dans un document txt
' Référence Microsoft Word Object Library à ajouter

Dim fFileTxt As String
' Dim Mondoc As Object
Dim Mondoc As Word.Application
' Set Mondoc = New Word.Application
Set Mondoc = CreateObject("Word.Application")

On Error GoTo errhand

Mondoc.ChangeFileOpenDirectory "D:\Personnel\Données"
fichier2 = Application.GetOpenFilename("Documents Word(*.doc),*.doc")

If fichier2 <> "" Then
Mondoc.Documents.Open Filename:=fichier2

fFileTxt = "doc_toto.txt"
If TextBox1 <> "" Then
fFileTxt = "doc_" & TextBox1 & ".txt"
End If

Mondoc.ActiveDocument.SaveAs Filename:=fFileTxt, _
FileFormat:=wdFormatText
Mondoc.ActiveDocument.Close
Else
MsgBox "annuler"
End If

' Arrêt de l'application WinWord.exe
Set Mondoc = Nothing
Word.Application.Quit

Exit Sub

errhand:
'indique le numéro et la description de l'erreur survenue
MsgBox "Erreur n°" & Err.Number & vbLf & Err.Description

End Sub
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
266
3
Merci
Bonjour,

Tu as déclaré ainsi Mondoc :
Dim Mondoc As Word.Application
Set Mondoc = CreateObject("Word.Application") 
Mondoc est donc l'objet Word.Application ...

Tu devrais donc écrire :

Mondoc.Application.Quit 
Set Mondoc = Nothing

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 116 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
77
0
Merci
Salut
La prochaine fois, essaye d'utiliser la colorisation syntaxique (3ème icone à partir de la droite) = plus facile à lire)

Sur quelle ligne apparait cette erreur ?
Dans quel logiciel Office es-tu ? Word ?
Si tu es bien sous Word, pourquoi ouvres-tu une nouvelle instance de Word et pas simplement un nouveau document (et faire un Close au lieu d'un Quit) ?
Si tu n'es pas sous Word, as-tu ajouté la référence à Word à ton projet ?
Commenter la réponse de cs_Jack
Messages postés
7
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
31 janvier 2010
0
Merci
Bonjour Jack, merci de te pencher une nouvelle fois sur mes problèmes.

Il s'agit d'une partie d'une macro excel qui ouvre un document word. J'ai bien déclaré les références word d'ailleurs la macro s'exécute normalement la première fois ; c'est quand je la relance une nouvelle fois que l'erreur apparaît. L'erreur apparaît lorsque je quitte l'application word "Word.Application.Quit". Si je commente cette ligne, l'erreur disparaît, en revanche les processus "WINWORD.exe" s'empilent dans le gestionnaire de tâches.

Merci encore Jack.

' Arrêt de l'application WinWord.exe
Set Mondoc = Nothing
Word.Application.Quit

Exit Sub 


«L’important est de tirer une leçon de chaque échec.» [ John McEnroe ] Il aurait pu ajouter, il est fort ce Roger...
Commenter la réponse de Flagin
Messages postés
7
Date d'inscription
mercredi 20 janvier 2010
Statut
Membre
Dernière intervention
31 janvier 2010
0
Merci
C'est parfait ça marche... bon, je vais un peu réviser la notion d'objet, j'ai un peu de mal.

Merci à tous les deux et bonne fin de we.
Commenter la réponse de Flagin

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.