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 :

Création de rapport Word depuis Excel VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Par défaut Création de rapport Word depuis Excel VBA
    Bonjour à tous,

    Cela fait plusieurs jours que je planche sur la question et je suis bloquée.
    Je dois générer chaque matin automatiquement un rapport Word depuis un classeur Excel.
    Ce classeur comprend différents onglets, dont certaines comprennent des graphiques et des tableaux.

    J'ai le fichier word de base dans lequel je souhaite ajouter les graphiques et les tableaux.
    Jusque là, ma macro actuelle ouvre le document word de base et y insère un premier tableau à la place que je lui ai indiqué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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub RapportRD()
     
    Dim appWord As New Word.Application
    Dim docWord As New Word.Document
    Dim Fichier As String
    Dim DerLigne As Long
     
    On Error Resume Next
    Fichier = "R:\RECHERCHE-ET-MODELES\0.MAJ\test.docx"
     
    'Appeler le document word existant
    Set appWord = CreateObject("Word.Application")
    appWord.Visible = True
    Set docWord = appWord.Documents.Open(Fichier)
     
    'Alignement centré
    appWord.Selection.HomeKey unit:=wdLine
    appWord.Selection.EndKey unit:=wdLine, Extend:=wdExtend
    appWord.Selection.ParagraphFormat.Alignment = wdalignparagraphcenter
     
    'Copier le tableau que l'on veut insérer
    Feuil3.Range("J11:O14").Copy
    appWord.Selection.EndKey unit:=wdLine
     
    'Coller le tableau dans la première page
    appWord.Selection.PasteSpecial link:=True, DataType:=wdPasteOLEObject, Placement:=wdLine, DisplayAsIcon:=False
     
    'Le placer dans la feuille
    docWord.Tables(1).AutoFitBehavior wdAutoFitWindow
    Application.CutCopyMode = False
    docWord.Shapes(1).Top = 220
    docWord.Shapes(1).Left = -135
    docWord.Shapes(1).ZOrder msoSendBehindText
     
    End Sub
    Maintenant, mon problème est que, comme je travaille à partir d'un fichier déjà existant, je veux insérer certains graphiques et certains tableaux à des endroits bien précis.

    1- Comment indiquer sur quelle feuille/page Word on souhaite travailler ?
    2- Comment sélectionner dans Excel les graphiques, sachant que j'en ai 3 dans une même feuille ?

    Voilà, j'espère avoir été claire.
    N'hésitez pas à me demander des précisions.

    A bientot

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2012
    Messages : 32
    Par défaut
    Bonjour,

    J'ai peut-être une solution pour toi, j'ai déjà été confronté au même problème.

    J'ai mis pas mal de temps à trouver une solution, mais celle-ci fonctionne (peut être pas de facon optimal).

    Tout d'abord j'exporte les graphiques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveChart.Export Filename:=NomduGraphique, filtername:="jpg"
    Et ensuite pour l'importation sur le docment Word :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     WordApp.Selection.Goto(What:=wdGoToPage, name:=NumeroDePage).InlineShapes.AddPicture Filename:= _
                        PathdeLImage & "\" & nomImage & ".jpg", LinkToFile:=False, SaveWithDocument:= True
    Je pense que ca pourra t'aider pour ton 1)

  3. #3
    Membre averti
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2012
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2012
    Messages : 21
    Par défaut
    Super merci !
    J'essaye ça de suite.

    Et désolée Philippe Jochmans pour l'oubli des balises.
    J'y ferai bien attention les prochaines fois.

Discussions similaires

  1. Mise en page d'un document word depuis excel VBA
    Par tinange dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2012, 12h42
  2. Publipostage Word depuis Excel avec datasource = fichier macro vba
    Par julac dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/11/2012, 14h58
  3. [XL-2007] VBA Ouvrir Fichier word depuis Excel
    Par Floorfiler dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/01/2011, 21h18
  4. Inserer des numeros pages dans un doc Word depuis Excel en VBA
    Par bguichardaz dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 06/01/2010, 17h45
  5. Question sur accès fichier word depuis excel (VBA)
    Par jerome.grange dans le forum VBA Word
    Réponses: 6
    Dernier message: 22/09/2006, 17h34

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