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 :

ouverture fichier Word [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut ouverture fichier Word
    Bonjour,
    Mon but est de copier le contenu intégral d'un fichier Word dans une colonne Excel (le code est dans Excel parce que l'essentiel des autres opérations se passent dans Excel).
    Problème: après avoir ouvert le fichier word, la prochaine instruction provoque le message "Commande non disponible; aucun document n'est ouvert". Est-ce mes instructions d'ouverture du fichier qui foirent ? Ci-dessous le début de mon code (adapté d'un exemple Internet):
    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
    19
    Sub texte_Word_vers_Excel()
     
    Dim contenu As String
    Dim xlApp As Excel.Application
    Dim xlSheet As Excel.Worksheet
    Dim BMRange As Word.Range
    Dim WdFich As Object
     
    Set WdFich = CreateObject("Word.Application")
    Documents.Open Filename:=("E:\2_M_E_S__P_R_O_J_E_T_S\Périple\analyse_periple\PERIPLE_10_10_test.docx")
     
    'encolonner_texte
     
    ActiveDocument.Range.Expand '  >> ici message d'erreur: commande non disponible
                              'aucun document n'est ouvert
                              'même erreur dès la référence à ActiveDocument, quelle que soit la suite
     
    '... etc.
    End Sub
    En général je me noie dans un verre d'eau. Merci d'avance à qui me repêchera !
    Cordialement
    touche_a_tout

  2. #2
    Invité
    Invité(e)
    Par défaut
    Le code basique pour ouvrir document word à partir de l'Excel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim wApp, Doc
    Set wApp = CreateObject("Word.Application")
    Set Doc = wApp.Documents.Open(Filename:="E:\2_M_E_S__P_R_O_J_E_T_S\Périple\analyse_periple\PERIPLE_10_10_test.docx")
     
    'encolonner_texte
     
     Doc.Range.Expand '  >> ici message d'erreur: commande non disponible
                              'aucun document n'est ouvert
                              'même erreur dès la référence à ActiveDocument, quelle que soit la suite

  3. #3
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Merci Rmist2024,
    C'était trop beau. J'ai copié ton code en remplacement du mien mais la ligne 3 lance une exécution sans fin, arrêtable seulement par Ctrl+Alt/Del. Une idée de ce qui se passe ?
    Merci d'avance
    Cordial salut
    touche_a_tout

  4. #4
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Re,
    Post Scriptum.
    Boîte de dialogue s'ouvre avec "L'appel a été annulé par filtre de messages".
    Aucune idée de ce que ça signifie.
    touche_a_tout

  5. #5
    Invité
    Invité(e)
    Par défaut
    Probablement qu'une autre instance de Word n'est pas fermée et bloque l’exécution du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim wApp, Doc
    Set wApp = CreateObject("Word.Application")
    Set Doc = wApp.Documents.Open(""E:\2_M_E_S__P_R_O_J_E_T_S\Périple\analyse_periple\PERIPLE_10_10_test.docx")", True)' lecture seule
     
     ...
     
     
     wApp.Quit
     Set wApp = Nothing

  6. #6
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Bonjour,
    Merci rMist2024,
    J'ai en effet une fenêtre de dialogue avec le choix entre créer un fichier lecture seule, créer une copie et attendre notification + OK et Annuler. Je me rappelle avoir utilisé une procédure pour cliquer virtuellement avec VBA sur un des boutons mais je ne la retrouve pas (J'ai pas mal fouillé les sites de VBA !).
    Y a-t-il eu un fil sur ce sujet sur le forum ? Un tutoriel ? Celui que j'ai étudié n'aborde pas ce point particulier.
    J'ai aussi testé les instructions qui ferment ou désactivent un dialogue mais sans succès.
    Le pire est que le fichier Word que je veux ouvrir est effectivement ouvert (en lecture seule) mais caché par des fichiers vides. Il est créé par la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set AppWord = CreateObject("Word.Application")
    où le nom du fichier que je veux ouvrir ne figure pas !!
    Merci pour toute piste.
    Cordialement
    touche_a_tout

  7. #7
    Invité
    Invité(e)
    Par défaut
    J'ai en effet une fenêtre de dialogue avec le choix entre créer un fichier lecture seule, créer une copie et attendre notification + OK et Annuler. Je me rappelle avoir utilisé une procédure pour cliquer virtuellement avec VBA sur un des boutons mais je ne la retrouve pas (J'ai pas mal fouillé les sites de VBA !).
    Dans ce cas le fichier est ouvert et l'application propose une série d'actions que tu cites

    Pour se connecter à une instance qui existe utiliser plutôt GetObject et parcourir les documentes ouverts ou selectionner le document si tu as son nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim wApp, Doc
    Set wApp = GetObject(, "Word.Application")
     
    ' parcourir les documents ouverts
    For Each Doc In wApp.Documents
       MsgBox Doc.Name
    Next
    'selectionner un document par nim
    'Set Doc = wApp.Documents("PERIPLE_10_10_test.docx")
    Attention n'utiliser pas wApp.Quit avec GetObject il va fermer l'application

  8. #8
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Merci rMist2024,
    Ton code fonctionne et je peux activer le fichier qui m'intéresse mais je me casse les dents sur une fonction que je copie textuellement chez Microsoft Learn: Replace, soit:
    Replace(expression, find, replace, [ start, [ count, [ compare ]]])
    (les 3 derniers arguments sont facultatifs) et elle me donne une erreur. Je ferais sans doute mieux d'indiquer ce que je veux faire et d'afficher mon code.
    J'ai un texte sous Word que je veux analyser mot après mot avec Excel. Mon plan consiste à ouvrir ce Doc dans Word, de remplacer tous les espaces (Chr(32) par un retour chariot et de le coller dans la première colonne d'une feuille XL où il s'affichera à raison d'un mot par cellule. Pour tester la moulinette j'ai choisi un passage du Doc où il est question d'un escalier et je cherche à remplacer "marches" par "degrés" et c'est là, à la ligne 12:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Replace(mystring, "marches", "degrés",)
    que j'ai l'erreur, que je mette ou non la virgule après le texte de remplacement.
    Pour plus de clarté je copie mon code provisoire ci-dessous. SI quelqu'un voit où ça pèche je suis tout ouïe !

    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
    Sub modifier_Word()
    Dim AppWord, Doc
     
    Set AppWord = GetObject(, "Word.Application")
    ' parcourir les documents ouverts    'n'est pas indispensable
    For Each Doc In AppWord.Documents
       MsgBox Doc.Name
    Next
    Documents.Open ("E:\2_M_E_S__P_R_O_J_E_T_S\Périple\analyse_periple\PERIPLE_10_10_test.docx")
    ActiveDocument.Range.WholeStory
    mystring = ActiveDocument.Content
    Replace(mystring, "marches", "degrés",)
    ActiveDocument.Content.Find.Execute Replace:=wdReplaceAll
     
    End Sub
    Merci d'avance et bonne soirée.
    Cordialement
    touche_a_tout

  9. #9
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 235
    Par défaut
    Hello,

    un exemple à adapter en PJ.
    Fichiers attachés Fichiers attachés

  10. #10
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Haha, merci, le Nain costaud,
    Demain, je serai un peu plus frais pour commenter.
    Bonne soirée
    Cordialement
    touche_a_tout

  11. #11
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    Bonjour Nain_porte_Koi et encore merci,
    Du code vachement propre (je code comme un gamin qui bouffe le Nutella avec les doigts) et rien en dur. Un modèle !
    Mais je n'arrive pas à activer les macros: Fichier, groupe code, Sécurité des macros, Activer toutes les macros mais ça ne donne rien ! Et l'aide de Microsoft ne s'intéresse plus qu'à 365, avec des tas de renvois à toute sorte d'articles pour revenir finalement à Fichier, groupe code, Sécurité des macros, Activer toutes les macros. Avec les fautes de traduction par-dessus le marché. Qu'alors y faire ?
    Merci d'avance.
    Cordialement
    touche_a_tout

  12. #12
    Membre éclairé Avatar de touche_a_tout
    Profil pro
    Inscrit en
    Août 2006
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 557
    Par défaut [XL-2016] ouverture fichier Word
    STOP ! Tout va bien !
    OK, Nain_porte_KOI, ça fonctionne. J'ai changé le nom du fichier XL dans le module mais pas dans le classeur lui-même ! C'est ce qui empêchait l'activation des macros. Encore merci pour ton aide ou plutôt pour ta recréation de ce module. Discussion terminée.
    Cordialement
    touche_a_tout

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

Discussions similaires

  1. Ouverture fichier word
    Par eriz dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 22/10/2008, 17h04
  2. [HTML] Ouverture fichier word ou excel dans une iframe
    Par bobby77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/02/2008, 20h02
  3. [VBA-E] ouverture fichier word
    Par mulanzia2003 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 25/05/2006, 10h38
  4. Conseil et code ouverture fichier word...
    Par Angeldu74 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/04/2006, 08h37
  5. [VBA-A]ouverture fichier word
    Par drangip dans le forum VBA Word
    Réponses: 2
    Dernier message: 25/02/2006, 12h44

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