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 :

Importation de Graphiques dans un fichier Word


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2004
    Messages : 50
    Par défaut Importation de Graphiques dans un fichier Word
    Bonjour à tous,

    Je fais appel à votre aide car je bloque sur un point que je n'arrive pas à résoudre :

    Mon code doit copier en séquentiel les 25 graphiques de la feuille active. s'il y'a des graphiques dans d'autres feuilles, ils seront copiés vers word en fonction des signets dans Word.
    Mon code ouvre le fichier Word et commence à faire un traitement et bug à 25. Je m'apérçois que les graphiques ne sont pas copiés.

    Merci pour votre aide.


    Cordialement

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    Sub Export_graph_Word()
     
    Dim wdApp As New Word.Application
    Dim wdDoc As Word.Document
    Dim Nom_doc As String
    Dim I As Integer
    Dim J As Integer
    Dim K As Integer
    Dim Deb As Integer
    Dim Fin As Integer
     
        Application.ScreenUpdating = False
        wdApp.ScreenUpdating = False
     
        Nom_doc = Application.GetOpenFilename(FileFilter:="Word.Document(*.docx;*.doc),*.docx;*.doc", Title:="S?lectionnez un document Word") 'permet d'ouvrir une fen?tre pour d?finir le document Word ? ouvrir
        wdApp.Visible = True
        Set wdDoc = wdApp.Documents.Open(Nom_doc)
     
        K = 0 'permet de compter le nombre de graphiques pass?s en revue
            For I = 1 To Sheets.Count 'passe en revue les onglets du fichier
            Sheets(I).Activate
     
            'Boucle pour selectionner un ? un les graphiques de la feuille active et faire les modifications
                    For J = 1 To ActiveSheet.ChartObjects.Count
                        Sheets(I).ChartObjects(J).CopyPicture 'copie le graphique s?lectionn? en format image
                        K = K + 1 'impl?mente le compteur de graphiques
                        wdDoc.Activate 'active le fichier Word
                        Deb = wdDoc.Bookmarks("Graph" & K).Start 'rep?re le d?but du signet concern?
                        Fin = wdDoc.Bookmarks("Graph" & K).End 'rep?re la fin du signet concern?
                        wdDoc.Bookmarks("Graph" & K).Range.Select 'permet d'atteindre le signet correspondant ? l'emplacement du graphique
                        wdDoc.Bookmarks("Graph" & K).delete 'supprime les donn?es du signet (et supprime le signet en m?me temps)
                        wdApp.Selection.PasteAndFormat (wdChartPicture) 'collage du graphique en format image
                        wdApp.Selection.InsertParagraphAfter 'ins?re un saut de ligne
                        wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'centre le graphique
                        wdDoc.Range(Deb, Fin).Bookmarks.Add ("Graph" & K) 'on recr?e le signet avec les infos d?but et fin de l'emplacement
                    Next J
            Next I
        wdApp.ScreenUpdating = True
        wdApp.Selection.Goto What:=wdGoToPage, Count:=1 'aller ? la 1?re page du doc Word
        wdApp.ActiveDocument.Save 'enregistrement du docx Word
     
        Application.CutCopyMode = False 'vide le presse-papier
        Application.ScreenUpdating = True
        MsgBox "EXPORT GRAPHIQUES WORD OK"
     
    End Sub

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par BAHIRI Voir le message
    Mon code ouvre le fichier Word et commence à faire un traitement et bug à 25.
    Quel est le message d'erreur ?
    "25", c'est le numéro du graphique ou de la ligne de code ?

  3. #3
    Membre confirmé
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2004
    Messages : 50
    Par défaut Bookmarks
    Bonjour,

    Il y a en effet un message d'erreur :

    Erreur d'exécution '5941'
    La méthode 'Item' de l'objet 'Bookmarks' a échoué


    Cordialement

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Répondre à deux questions c'était trop pour toi ?

    Vu que visiblement il n'y a pas de Bookmark à la ligne de code 25, je suppose que "25" est le numéro du graphique qui pose problème.
    Alors quelle ligne de code est désignée par le débuggage ?

  5. #5
    Membre confirmé
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2004
    Messages : 50
    Par défaut
    Bonsoir Menir,

    Je te prie de m'excuser ce n'est pas par économie.

    Un complement d'information :


    J'ai commencé l'application Sous Office 2010. Je charge Microsoft Word 14.0 Library et sous Office 365 Microsoft Word 14.0 Library. Il y a probablement un problème de compatibilité. Il est probable qu'il charge un membre d'une collection qui n'existe pas.

    Cordialement

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ecoute, je ne vais pas te supplier pour que tu acceptes de répondre aux questions qui peuvent permettre de résoudre ton problème.
    Donc moi j'arrête là.
    Bonne chance pour la suite.

  7. #7
    Membre confirmé
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2004
    Messages : 50
    Par défaut Excel vers Word
    Bonsoir Menhir

    Je regrette sincèrement et je suis désolé pour ce malentendu.

    Pour répondre à ta première question, le 25 est le numéro du graphie. Le fichier cible contient les 25 signets.

    La ligne de code où s'arrête le programme (ligne 28):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Deb = wdDoc.Bookmarks("Graph" & K).Start
    ou ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wdDoc.Range(Deb, Fin).Bookmarks.Add ("Graph" & K)
    Je te remercie pour ton aide.

    Cordialement

  8. #8
    Membre confirmé
    Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2004
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2004
    Messages : 50
    Par défaut En attendant on avance
    Bonjour à tous,

    Le code que j'ai mis en ligne fonctionne chez un ami qui l'a testé (Windows 10 avec Office 2013 et Office 365).

    Ce même code ne fonctionne pas chez moi sous les deux configurations :
    Windows 10 et Office 2010 avec Microsoft library 14.0 de Word
    MacBookPro : Parallels Desktop avec Windows 10 et Office 365 avec Microsoft library 16.0 de Word

    il s'arrête à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Deb = wdDoc.Bookmarks("Graph" & K).Start
    ou la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wdDoc.Range(Deb, Fin).Bookmarks.Add ("Graph" & K)
    le code Erreur d'exécution '5941'

    Le fichier cible Word contient tous les signets.

    avec cette ligne en plus " On Error Resume Next" le code fonctionne. Je n'ai pas encore une réponse logique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    On Error Resume Next
    wdDoc.Range(Deb, Fin).Bookmarks.Add ("Graph" & K)

    Si vous avez une explication logique, elle sera la bienvenue.

    Bien Cordialement

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/10/2014, 11h56
  2. Réponses: 5
    Dernier message: 19/10/2014, 12h19
  3. Trouver une adresse mail dans un fichier word
    Par vonitiana dans le forum Langage
    Réponses: 18
    Dernier message: 09/06/2006, 17h48
  4. [COM] Écrire dans un fichier word
    Par khaled.mtibaa dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/04/2006, 12h36

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