Copy/Paste [Résolu]

Signaler
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
-
Bonjour,

J'essaye sans succes depuis un certain temps de transferer des donnees Excel (partie d'un tableau) dans un document Word. Je suis sur que ce probleme n'est pas insurmontable, excepte peut-etre pour moi.

Mon probleme, c'est de transferer 2 morceaux de tableaux a la suite sur un document Word.
Voila le code et mon probleme:

Private Sub cmdCopyPasteSS_Click()
             'Copy the selected area in a Word document
             'Sheet2.Range("B5:L35,B46:L72").Copy          'Tentative de contourner le probleme: Ne marche pas!
'The instruction creates a new Word document
Dim AppWord As Word.Application
Dim DocWord As Word.Document
Set AppWord = New Word.Application
Set DocWord = AppWord.Documents.Add
'AppWord.ActiveWindow.Visible = True
DocWord.PageSetup.Orientation = wdOrientLandscape


Sheet2.Range("B5:L35").Copy
DocWord.Range.PasteSpecial
    'DocWord.Range.Move Unit:=wdLine, Count:=30      'Move ou MoveEnd: Ne marche pas!
Sheet2.Range("B46:L72").Copy
DocWord.Range.PasteSpecial


DocWord.Application.ActiveDocument.SaveAs ("C:\Users\Name\Desktop\Test.doc")
AppWord.Quit
    'Back in the corner
    Sheet2.Range("A1").Copy
    Sheet2.Range("A1").PasteSpecial
    Application.CutCopyMode = False
End Sub

Le transfert du tableau B5:B35 seul marche bien, mais le transfert des 2 tableaux a la suite (comme dans le code ci-dessus) me donne uniquement B46:L72.
Le code suivant: Sheet2.Range("B5:L35,B46:L72").Copy me donne en fait un resultat identique a B5:L72.
Autrement dit, j'ai aussi B36:L45 ce que je ne veux pas.

Y-a-t-il un moyen de bouger le curseur de haut en bas dans ce document Word en code VBA?
Ou voyez-vous une autre facon de gerer le probleme?

Merci d'avance pour vos idees (en esperant avoir ete assez clair).

Une petite question supplementaire (si je me permet d'abuser) qui pourrait peut-etre changer la strategie que j'utilise ici:  Clipboard ! Comment copier dans le clipboard et recoller ailleurs. Question un peu vague, donc une simple direction vers ce sujet sera apprecie.

Merci encore, surtout si vous avez lu jusqu'au bout.
JLuc01

3 réponses

Messages postés
22
Date d'inscription
mardi 23 janvier 2007
Statut
Membre
Dernière intervention
31 mars 2010

Bonjour JLuc01,

Essaie en utilisant "AppWord.Selection" plutôt que "DocWord.Range". ça peut donner :

    Sheet2.Range("B5:L35").Copy
    AppWord.Selection.PasteExcelTable False, False, False

    AppWord.Selection.EndKey Unit:=wdStory

    Sheet2.Range("B46:L72").Copy
    AppWord.Selection.PasteExcelTable False, False, False
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
Juste un petit mot supplementaire: c'est genial, ca marche.
Cette facon de faire m'ouvre aussi un nouvel horizon a explorer (EndKey).

Je suis surpris ou ne comprends pas tres bien pourquoi je ne peux pas utiliser DocWord (pas de methode Selection dans ce cas la)...


Enfin bref, merci beaucoup.



JLuc01
Messages postés
206
Date d'inscription
samedi 17 janvier 2009
Statut
Membre
Dernière intervention
5 mars 2013
1
J'ai oublie juste une petite information dans mon message precedent.

Je n'ai pas de methode PasteExcelTable, j'ai donc utilise PasteSpecial a la place. Probablement juste une histoire de version Excel.

JLuc01