Erreur d'execution 462 lors du lancement successif d'une macro

Résolu
Flagin Messages postés 7 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 31 janvier 2010 - 30 janv. 2010 à 21:04
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

4 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 janv. 2010 à 16:59
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 janv. 2010 à 14:47
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 ?
0
Flagin Messages postés 7 Date d'inscription mercredi 20 janvier 2010 Statut Membre Dernière intervention 31 janvier 2010
31 janv. 2010 à 15:55
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...
0
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
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.
0
Rejoignez-nous