IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Erreur 424 après fermeture fichier word [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut Erreur 424 après fermeture fichier word
    Bonjour,

    J'ai un fichier excel.
    À partir de celui-ci j'ouvre des fichiers word avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub CommandButton2_Click()
    Dim AppWord As Object
    Dim Doc As Object
    Dim fichier As String
     
    Set AppWord = CreateObject("Word.Application")
     
    AppWord.Visible = True
     
    Mypath = ThisWorkbook.Path
     
    fichier = Mypath & "\" & "01_Demande.dot"
    Set Doc = AppWord.Documents.Add(fichier)
    End Sub
    Ces derniers se ferment à l'aide d'un bouton présent dans un USF.

    Deux codes pour les fermer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub CommandButton2_Click()
    Application.Quit
    End Sub
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton2_Click()
    unload me
    activedocument.close
    End Sub
    Quand j'utilise le deuxième code et que je retourne sous excel j'ai le message d'erreur 424 "Objet requis".
    D'où peut venir le problème ? (fichier word non protégé)
    Je n'ai pas trouvé de soluce sur le net.

    Je précise que j'aimerai que soit seulement fermer le document word actif et non pas l'application word.

    Merci

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Essaye comme ceci :

    Déclaration de la variable Doc en tête de module (avant les procédures) afin de pouvoir appeler cette variable dans toutes les procédures du module UserForm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Dim Doc As Object
     
    Private Sub CommandButton2_Click()
    Dim AppWord As Object
    Dim fichier As String
     
    Set AppWord = CreateObject("Word.Application")
     
    AppWord.Visible = True
     
    Mypath = ThisWorkbook.Path
     
    fichier = Mypath & "\" & "01_Demande.dot"
    Set Doc = AppWord.Documents.Add(fichier)
    End Sub
    Fermeture du document Word (avant la fermeture du UserForm)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton3_Click()
    Doc.close
    Unload me
    End Sub

  3. #3
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Nouveau message d'erreur : "Incompatibilité de type"

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Sorry je n'avais pas gratté plus loin dans ton code

    1. Active la référence "Microsoft Word xx Object Library" (Dans le menu Outils\Références du projet VBA)

    2. Déclare ta variable Doc comme ceci :
    3. Vérifie les noms de tes boutons, dans ton code initial tu as 2x le bouton2

  5. #5
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    La réponse me semblait bizarre mais j'ai quand même essayé

    Mon premier message n'est peut être pas assez clair.
    Je reprends.

    Je ferme mes fichiers word à l'aide de bouton présents dans le fichier word.

    Fichier excel : bouton "Demande" ouvre le fichier word "01_Demande".

    Fichier word "01_Demande" : bouton "Fermer" ferme le fichier word. J'utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub CommandButton2_Click()
    unload me
    activedocument.close
    End Sub
    Le fichier word s'ouvre sans problème (aucun message d'erreur). C'est quand je ferme le fichier word qu'excel m'affiche le message d'erreur.

    MErci

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par AidezMoiSvp Voir le message
    Mon premier message n'est peut être pas assez clair.
    Je reprends.

    Je ferme mes fichiers word à l'aide de bouton présents dans le fichier word.
    On ne pouvait pas le deviner...
    Dans ce cas tes deux lignes de code pour fermer le document Word sont corrects. Juste un petit détail mais qui ne changera rien au fonctionnement du code, évite d'utiliser les "ActiveMachin", un jour où l'autre ça coincera. Au lieu d'utiliser ActiveDocument, utilise plutôt ThisDocument.

    A mon avis tu ne nous dis pas encore tout ou ne montre pas l'entièreté des codes...parce qu'à priori je ne vois pas ci qui pourrait créer cette erreur.
    L'erreur se produit sur quelle ligne de code ?

  7. #7
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Citation Envoyé par fring Voir le message
    On ne pouvait pas le deviner...
    Je ne disais pas ça méchamment

    A mon avis tu ne nous dis pas encore tout ou ne montre pas l'entièreté des codes...parce qu'à priori je ne vois pas ci qui pourrait créer cette erreur.
    L'erreur se produit sur quelle ligne de code ?
    L'erreur se produit au niveau du "set Doc" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    Set Doc = AppWord.Documents.Add(fichier)
    End Sub

    A mon avis tu ne nous dis pas encore tout ou ne montre pas l'entièreté des codes...
    Ce code fait partis d'un ensemble.
    Cependant j'ai essayé avec fichier excel comprenant seulement le code d'ouverture (voir plus haut) et un fichier word (modèle) avec un USF et un bouton "quitter" comprenant le code plus haut.
    J'ai le même message d'erreur quand je veux juste fermer le document et pas de message quand je quitte complétement l'application.

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    J'ai créé le fichier Excel et le document Word au format *.dot avec USF et je n'arrive pas à reproduire l'erreur.

    Pourquoi ne veux-tu pas fermer l'application Word ? Si tu relances 10x ton code d'ouverture via Excel, tu vas avoir 10 instances Word ouvertes vu que à chaque fois tu passes par la ligne de code "Set AppWord = CreateObject("Word.Application")"

  9. #9
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Bon... Bizarre.

    Je voulais juste quitter le document actif et non pas l'application parce que si l'utilisateur a d'autres fichiers word d'ouverts et qu'il clique sur le bouton "quitter" du document word actif word va vouloir fermer tous les documents word.

  10. #10
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par AidezMoiSvp Voir le message
    si l'utilisateur a d'autres fichiers word d'ouverts et qu'il clique sur le bouton "quitter" du document word actif word va vouloir fermer tous les documents word.
    Non vu que tu ouvres le *.dot dans une nouvelle instance Word, uniquement celle-ci sera fermée.

  11. #11
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Bah non justement. Avec chez moi il me ferme tout...
    Je comprends pas....

  12. #12
    Membre chevronné Avatar de ZebreLoup
    Homme Profil pro
    Ingénieur Financier
    Inscrit en
    Mars 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur Financier
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 994
    Points : 2 131
    Points
    2 131
    Par défaut
    C'est qu'il faut faire. (enfin, j'ai lu le fil en diagonale, je peux me tromper)

  13. #13
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    bon. J'avance un peu.
    Quand j'ai plusieurs documents word d'ouverts et que je veux quitter j'ai un message me demandant si je veux modifier le modèle...
    Bizarre vu que je ne fais aucune référence à "Normal"... Cependant Outlook 2010 est ouvert. J'ai croisé quelques topics traitant du sujet mais pas de solution sur ces topics...
    Je précise que je travaille sur réseau.

    J'avance encore un peu plus.
    Mon fichier word s'ouvre sur un USF en désactivant ce USF je n'ai plus le message me demandant si je veux modifier "Normal".
    Par contre, toujours le problème de l'erreur 424...

    Je pense avoir trouvé.
    J'ai remplacé

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim AppWord As word.application

    Je vous tiens au courant

  14. #14
    Membre régulier
    Inscrit en
    Février 2011
    Messages
    263
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 263
    Points : 100
    Points
    100
    Par défaut
    Bonjour,

    Je confirme que je n'ai plus l'erreur 424.
    Par contre j'ai toujours le message me demandant si je veux modifier "Normal"... (ce message ne s'affiche que quand j'ai d'autres documents word ouverts et que quand j'ouvre le document modèle depuis la macro excel).

    Merci


    _____________________________________

    Je pense avoir enfin trouvé la solution.
    J'ai changé le code pour ouvrir le modèle word

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim oWord As Word.Application
    Dim oDoc As Word.Document
    Dim fichier As String
     
    Mypath = ThisWorkbook.Path
    fichier = Mypath & "\" & "01_Demande.dot"
     
    Set oWord = New Word.Application
     
    Set oDoc = oWord.Documents.Add(fichier)
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Erreur VBA de 2003 à 2007, seulement après fermeture du fichier
    Par efesdark dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 08/07/2011, 12h17
  2. Réponses: 1
    Dernier message: 20/08/2007, 17h22
  3. Réponses: 10
    Dernier message: 17/08/2007, 09h38
  4. publipostage Fermeture fichier word
    Par mat_lefebvre dans le forum Access
    Réponses: 2
    Dernier message: 13/09/2006, 11h00
  5. [VB]fichier XL reste verrouillé apres fermeture application
    Par abdou.sahraoui dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/01/2006, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo