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 :

Copier un tableau Excel dans Word [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Copier un tableau Excel dans Word
    Bonjour,

    Je copie une plage de cellule Excel dans Word.

    Quand j'utilise la commande "PasteExcelTable" et que je met le RTF à false, il ne copie rien mais si je le mets à oui, je n'ai pas ce problème mais je perds la couleur qu'il y a dans les cellules.

    J'ai essayé de vider le CutCopy avec la commande "Application.CutCopyMode = False
    " mais cela n'a rien changé. J'ai essayé d'autres types de copie mais j'ai tourjous le problème.

    Voici une portion du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set wdDoc = wdApp.Documents.Add(sPath & "\Nom_Document.dotm")
        Set wdDoc = wdApp.ActiveDocument
     
        sStart = "A7"
        sEnd = "B" & iRwLast_D
     
        Worksheets(cShtDetails).Range(sStart & ":" & sEnd).Copy
     
        wdDoc.Range.PasteExcelTable False, False, False 'Commande qui cause problème.
    Est-ce que quelqu'un a déjà eu ce problème?

    Merci de votre aide

    Jojomif

  2. #2
    Membre habitué Avatar de Basicnav
    Profil pro
    Inscrit en
    Février 2008
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Février 2008
    Messages : 245
    Points : 193
    Points
    193
    Par défaut
    Bonjour,

    il est impératif à mon sens que tu contôle que ton presse papier contienne bien le tableau excel dans un premier temps.

    1)Le linktoexcel doit être à TRUE, qui imposera au document word les même modifications qu'au tableau excel

    2) Dans msdn il est dit ça :

    WordFormatting
    Type : System.Boolean
    true pour mettre en forme le tableau en utilisant la mise en forme du document Word.false pour mettre en forme le tableau en fonction du fichier Excel d'origine.



    3)Ensuite, mettre à TRUE ton RTF, si si !

    et là pas de raison que cela ne fonctionne pas.

    Toujours dan msdn, le code suivant est donné en exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub BookmarkPasteExcelTable()
     
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim Bookmark1 As Microsoft.Office.Tools.Word.Bookmark = _
            Me.Controls.AddBookmark(Me.Paragraphs(1).Range, "Bookmark1")
     
        Bookmark1.PasteExcelTable(True, False, True)
     
    End Sub

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 128
    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 128
    Points : 55 940
    Points
    55 940
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je pense que tu dois passer par la méthode PasteSpecial de l'objet Word
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      Set wDoc = wApp.Documents.Add("d:\données\excel.dotx")
      Range("a1:f6").Copy
      wApp.Selection.PasteSpecial link:=False, Placement:=wdInLine, DataType:=wdPasteOLEObject
    Tu n'as pas besoin de la deuxième ligne "Set wdDoc = wdApp.ActiveDocument" puisque ton objet est déjà instancié.

  4. #4
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,

    attention si tu veux utiliser ton document word plusieurs fois pour simuler un publipostage, il faudra utiliser la méthode delete à la position du bookmark avant de refaire un pastespecial sinon le résultat sera le cumul des différents pastespecial sur ce bookmark.

    Voici un exemple, à adapter à tes besoins :

    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
     
        Dim Myrange           As Variant
        Dim Bookstart         As Long
        Dim Bookend           As Long
     
     
               'Objectif (4)
     
    'remplir le signet Target            Workbooks(Detailled_workbook).Sheets(Details_Sheet).Range(Bonus_Detail_SheetName_Location) = Workbooks(Detailled_workbook).Sheets(Details_Sheet).name
                Workbooks(Detailled_workbook).Sheets(Details_Sheet).Range(Bonus_Range_Detail).Copy
                Bonus_Word.Bookmarks("Target").Range.PasteSpecial _
                 Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine
     
    '.......
    'effacer le signet Target
                ' Clear at "Target" bookmark position
                'Bonus_Word.Characters(Bonus_Word.Bookmarks("Target").Start + 1).Delete
                'Remove Inserted Contents at "Target" bookmark
                 With Bonus_Word.Bookmarks("Target")
                   Bookstart = .Start
                   Bookend = .End
                 End With
     
                Set Myrange = Bonus_Word.Range(Start:=Bookstart, End:=Bookend)
                  Myrange.Delete

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 5
    Points : 7
    Points
    7
    Par défaut Problème Résolu!
    Merci à tous et un merci particulier à Pierre

    Ce qui causait mon problème aussi bizarre que cela est, c'était ma commande en trop.

    Set wdDoc = wdApp.ActiveDocument

    Dès que je l'ai enlevé, tout c'est mis à bien fonctionner.

    Jojomif

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

Discussions similaires

  1. VBA - Copier tableau excel dans Word en Image
    Par pofito dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/02/2014, 19h20
  2. [W-07] Insertion tableau excel dans Word
    Par bstcricq dans le forum Word
    Réponses: 3
    Dernier message: 24/09/2008, 18h45
  3. Insérer un Tableau excel dans Word via VBA depuis Excel
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/05/2008, 09h52
  4. Réponses: 2
    Dernier message: 24/10/2007, 12h44
  5. [VBA-E]Copier des éléments excel dans word
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/03/2007, 11h11

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