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

VBA Word Discussion :

Ouverture et fermeture d'objet Word, ERREUR


Sujet :

VBA Word

  1. #1
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut Ouverture et fermeture d'objet Word, ERREUR
    Bonjour à tous,

    J'ai un programme (sur le vba d'Access) qui ouvre des documents Word (dotx et docx), travaille dessus, effectue une sauvegarde de la tramme en .docx et ferme les tous les documents sans sauvegarder. Ca marche parfaitement bien, mais lorsque je la relance, j'ai un bug sur :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ParaTrame.Paragraphs(NumObj).Range.Copy
    TrameRap.Bookmarks("Sgn_Form" & NumSgn).Select
    Selection.Paste
    Le débugueur est sur " Selection paste", et VBA me dit " ERREUR 462 , le serveur distant n'existe pas ou n'est pas disponible". Je pense que c'est parceque je ne ferme pas bien mes documents. Mes lignes d'ouverture et de fermeture sont les suivantes :

    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
    16
    17
    18
    Private wordObj As Word.Application
    Private TablTrame, ParaTrame As Word.Document
    Private TrameRap As Word.Document
     
    Set wordObj = CreateObject("Word.Application")
    Set TrameRap = wordObj.Documents.Open(AdrsTram)
    Set TablTrame = wordObj.Documents.Open(AdrsBasTrm & "\Tables_trame_RE.docx")
    Set ParaTrame = wordObj.Documents.Open(AdrsBasTrm & "\Paragraphes_trame_RE.docx")
     
    ' PROCEDURE SUR LES DOCUMENTS
     
    TrameRap.SaveAs FileName:=AdrsDest & "\" & NameRap & ".docx", FileFormat:=wdFormatDocumentDefault
    wordObj.Quit savechanges:=False 
     
    Set wordObj = Nothing
    Set TablTrame = Nothing
    Set ParaTrame = Nothing
    Set TrameRap = Nothing
    Si quelqu'un remarque une erreur dans ce code, je le remerci d'avance

    cordialement

    hadrien

  2. #2
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut
    Sans la sauvegarde du document, le code ferme bien les objets, mais si la ligne sauvegarde est active, la fermeture ne fonctionne pas. Pour preuve, si j'ouvre un document word, et si je vais dans "Boutton Office" puis "Quitter Word", je vois tous les Documents ouverts qui se ferme au fur et à mesure.

  3. #3
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut
    En fait, ce que je viens de dire se passe certaines fois mais pas d'autres.
    C'est à ni rien comprendre.

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Premiere réflexe, on libère les objets dans l'ordre inverse de l'affectation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set wordObj = CreateObject("Word.Application")
    Set TrameRap = wordObj.Documents.Open(AdrsTram)
    Set TablTrame = wordObj.Documents.Open(AdrsBasTrm & "\Tables_trame_RE.docx")
    Set ParaTrame = wordObj.Documents.Open(AdrsBasTrm & "\Paragraphes_trame_RE.docx")
     
     
    Set ParaTrame = Nothing
    Set TablTrame = Nothing
    Set TrameRap = Nothing
    Set wordObj = Nothing
    Comment libérer un Objet document si le programme n'existe plus.

    Je suppose que les lignes que tu nous donnes se trouvent dans une procédure.

    Dans ce cas, pourquoi les déclarer en Private ?

    Dans ta ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private TablTrame, ParaTrame As Word.Document
    , tu as un document et un variant.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut
    Pourquoi un Variant ???

  6. #6
    Membre expert

    Homme Profil pro
    Spécialiste progiciel
    Inscrit en
    Février 2010
    Messages
    1 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Loire (Auvergne)

    Informations professionnelles :
    Activité : Spécialiste progiciel
    Secteur : Service public

    Informations forums :
    Inscription : Février 2010
    Messages : 1 747
    Points : 3 016
    Points
    3 016
    Par défaut
    Bonjour,

    Cette déclaration te donne TablTrame comme variant et ParaTrame comme document
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private TablTrame, ParaTrame As Word.Document
    Pour avoir deux documents, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private TablTrame As Word.Document , ParaTrame As Word.Document
    Cordialement,
    Christophe

    Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche

  7. #7
    Membre régulier
    Homme Profil pro
    Apprenti Ingénieur
    Inscrit en
    Mars 2011
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Apprenti Ingénieur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2011
    Messages : 86
    Points : 88
    Points
    88
    Par défaut
    Merci, c'est dingue que je code depuis 3 mois sans même savoir ça !!!!
    Oh le nul que je suis.

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Salut,

    Et ton problème est disparu en changeant le type de la variable ?
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

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

Discussions similaires

  1. [Toutes versions] Ouverture et fermeture de word depuis vba
    Par AidezMoiSvp dans le forum VBA Word
    Réponses: 4
    Dernier message: 05/02/2015, 14h43
  2. Ouverture et fermeture de base très lent...
    Par Tofdelille dans le forum Installation
    Réponses: 6
    Dernier message: 19/09/2006, 18h51
  3. ouverture et fermeture de fenêtre
    Par froggies dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/10/2005, 11h36
  4. Objet.evenement --> Erreur : Non implémenté
    Par Darkdaemons dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/09/2005, 17h24
  5. Resau local => ouverture et fermeture
    Par Nutcase dans le forum Développement
    Réponses: 8
    Dernier message: 17/11/2002, 15h16

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