Copy/Paste

Résolu
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 19 avril 2009 à 17:04
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 - 20 avril 2009 à 20:29
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

r1r2 Messages postés 22 Date d'inscription mardi 23 janvier 2007 Statut Membre Dernière intervention 31 mars 2010
20 avril 2009 à 16:12
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
3
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
20 avril 2009 à 20:23
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
0
cs_JLuc01 Messages postés 206 Date d'inscription samedi 17 janvier 2009 Statut Membre Dernière intervention 5 mars 2013 1
20 avril 2009 à 20:29
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
0
Rejoignez-nous