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 :

[XL 2003] Problème de résolution des graphiques exportés


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut [XL 2003] Problème de résolution des graphiques exportés
    Bonjour à tous,
    j'ai fait une routine d'export des graphiques d'un classeur. D'ailleurs, merci pour toutes ces sources que j'ai trouvées sur le site et qui m'ont fort aidé.
    Cette routine s'exécute lors de l'appui sur un bouton "export" situé sur la feuille principale. Les graphiques sont exportés si la checkbox correspondante est cochée (celle-ci remplit une cellule située sur une autre feuille avec un booléen).
    Voici la routine :
    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
     
    Sub select_graph()
    Dim graph As Chart
    Dim graph_n As Byte
    Dim graph_sel As String
    Dim F_file As String, ficG As String
    Dim wbk As Workbook
     
    Set wbk = ThisWorkbook
    Application.ScreenUpdating = False
    For graph_n = 1 To 10
        If Range("calcul12!S" & graph_n) = True Then 'scrupte les checkboxes
            graph_sel = Range("calcul12!R" & graph_n)
            Charts(graph_sel).Select
            Set graph = ActiveChart
            F_file = "gif"
            ficG = wbk.Path & "\" & graph.Name & "." & F_file
            graph.Export Filename:=ficG, FilterName:="gif"
        End If
    Next graph_n
    ficG = wbk.Path
    Application.ScreenUpdating = True
    Sheets("Procédure et résultats").Select
    MsgBox "Les graphiques sélectionnés ont été exportés avec succès dans " & ficG, vbInformation
    End Sub
    Mon problème est le suivant : l'étape suivante que je voulais suivre est un import sous Word 2003. Malheureusement, quand je clique sur l'insertion d'image, le résultat n'est pas génial à l'impression : il y a énormément de pixel qui apparaissent. Après examen du gif qui est exporté, je vois que cela vient de là. J'ai essayé en jpeg mais le résultat est pire puisque mon quadrillage devient laid aussi. Y aurait-il un moyen d'améliorer cela ?

    Merci d'avance de vos réponses...

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonsoir.

    Pourquoi ne pas exporter directement tes graphiques dans Word?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonsoir Pierre et merci pour ta réponse.
    il y a une propriété de chart pour exporter directement dans word ? Je vais essayer quelque chose comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub CopieChartWord()
        ActiveSheet.ChartObjects(1).Select
        Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
    Dim AppWord As Object
     
    Set AppWord = CreateObject("Word.Application")
     
    With AppWord
         .Visible = True
         .documents.Open Filename:="C:\AJETER\test.doc" ' a modifier
         .Selection.Paste
    End With
     
    End Sub

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour à tous,
    j'ai décidé de finalement coller mes graphiques, seulement quand je veux positionner mon curseur sous word, je lance une recherche sur le titre en dessous duquel je souhaiterais qu'il soit.
    Ensuite, j'aimerais envoyer une touche flèche bas (.MoveDown Unit:=wdLine, Count:=1), mais il me refuse la compilation, avec un message de paramètre incorrect. Je ne comprends pas étant donné que l'objet sélectionné à ce moment-là est le fichier word.
    Est-ce normal que wdLine soit vide pendant l'exécution ?
    Merci de votre aide.
    Voici mon code, par clarté :

    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
    Public Sub CopieChartWord()
     
    Dim AppWord As Object, DocWord As Object
    Dim graph_n As Byte
     
    Set AppWord = CreateObject("Word.Application")
    Set DocWord = CreateObject("Word.Document")
     
    With AppWord
        .Visible = True
        .Documents.Open Filename:="c:\nix\prog excel\FQA Straightener C666a.doc"
        .Activate
    End With
     
    For graph_n = 1 To 12
        If Range("calcul12!S" & graph_n) = True Then 'scrupte les checkboxes
            graph_name = Range("calcul12!R" & graph_n)
            Charts(graph_name).Select
            ActiveChart.ChartArea.Copy
     
            With AppWord.Selection
                .Find.Text = "Heat-up time open-close (120 minutes):"
                .Find.Execute
                .MoveDown Unit:=wdLine, Count:=1
                .PasteSpecial link = False, DataType:=ppPasteEnhancedMetafile
                .MoveDown Unit:=wdLine, Count:=1
                .PasteSpecial link = False, DataType:=ppPasteEnhancedMetafile
              End With
        End If
    Next graph_n
     
    End Sub

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    La constante wdLine n'est connue que si tu références la librairie de Word.

    Vu que tu travailles avec une connexion tardive (sans référencer la librairie), tu dois remplacer les constantes par leur valeur.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 8
    Points
    8
    Par défaut
    Bonjour Pierre et merci pour ces éclaircissements.
    Est-il possible de faire une sorte de #include pour inclure la librairie spécifique à word ?

  7. #7
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Dans VBA, outils/Références, et tu coches la référence souhaitée "microsoft word ..."

    Tu peux alors déclarer tes variables du type souhaité, ce qui te permet la saisie semi-automatique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim AppWord As word.application, DocWord As word.document
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. problème d'affichage des graphiques
    Par funkyjul dans le forum IHM
    Réponses: 9
    Dernier message: 11/03/2014, 21h39
  2. Problèmes pour tracer des graphiques avec une macro
    Par Margoooot dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/08/2011, 17h19
  3. Améliorer la résolution des graphiques en camembert / Pie Charts
    Par choucks dans le forum ODS et reporting
    Réponses: 10
    Dernier message: 26/10/2010, 14h57
  4. Problème d'affichage des graphiques avec subplot
    Par Cver1 dans le forum Octave
    Réponses: 7
    Dernier message: 06/12/2009, 12h25
  5. [2.2.0] Problème d'affichage des graphiques
    Par nicolep dans le forum BIRT
    Réponses: 2
    Dernier message: 03/07/2007, 14h17

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