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

Flagin 7 Messages postés mercredi 20 janvier 2010Date d'inscription 31 janvier 2010 Dernière intervention - 30 janv. 2010 à 21:04 - Dernière réponse : Flagin 7 Messages postés mercredi 20 janvier 2010Date d'inscription 31 janvier 2010 Dernière intervention
- 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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 31 janv. 2010 à 16:59
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

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de ucfoutu
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 31 janv. 2010 à 14:47
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
Flagin 7 Messages postés mercredi 20 janvier 2010Date d'inscription 31 janvier 2010 Dernière intervention - 31 janv. 2010 à 15:55
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
Flagin 7 Messages postés mercredi 20 janvier 2010Date d'inscription 31 janvier 2010 Dernière intervention - 31 janv. 2010 à 17:33
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.