Récupèration plage en VBA

Résolu/Fermé
linkcr15 - 19 avril 2012 à 17:34
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 - 20 avril 2012 à 09:06
Bonjour,

Voila je vous explique mon problème. J'ai un classeur Excel nommé Test dans lequel j'ai définit une plage de donnée Joker.
Dans un document Word, je souhaite faire un copier/coller de cette plage via un bouton. J'ai assigné une macro à ce bouton. J'y arrive en définissant la plage manuellement, c'est à dire :
Set docExcel = CreateObject("Excel.Application")
Set classExcel = docExcel.Workbooks.Open("....xls")
Set feuilExcel = classExcel.Worksheets("Test")
Plage = "A1:F19"
feuilExcel.Range(Plage).Copy

Cependant, ma plage de donnée est dynamique, je l'ai donc nommée mais je n'arrive plus à la copier. J'ai à peu prés tout essayer sauf la bonne solution.
Est-ce que quelqu'un peut m'aider svp?
Merci d'avance pour vos réponses!

3 réponses

Utilisateur anonyme
19 avril 2012 à 18:46
Bonjour,

Cette syntaxe fonctionne de mon côté !

Sub Test()

    Dim docExcel As Excel.Application
    Dim classExcel As Excel.Workbook
    Dim feuilExcel As Excel.Worksheet
    Dim Plage As String

    Set docExcel = CreateObject("Excel.Application")
    Set classExcel = docExcel.Workbooks.Open("C:\Document\Programmation\VBA\Test.xls")
    Set feuilExcel = classExcel.Worksheets("Test")
    Plage = "JOKER"
    docExcel.Visible = True
    feuilExcel.Range(Plage).Copy
    
    ActiveDocument.Range.Paste
    
    classExcel.Close
    docExcel.Quit


End Sub


Cdt

Lupin
0
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
19 avril 2012 à 18:49
Bonjour,

Votre soucis, c'est le nom de la plage ou de trouver la dernier cellule de la plage?????
0
linkcr15 Messages postés 362 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 31 mars 2016 12
Modifié par linkcr15 le 20/04/2012 à 09:16
Voici mon code :

Set docExcel = CreateObject("Excel.Application") 
Set classExcel = docExcel.Workbooks.Open("....xls") 
Set feuilExcel = classExcel.Worksheets("Test") 
Plage = "Joker" 
classExcel.Range(Plage).Copy 
Selection.PasteExcelTable False, False, False 
DoEvents 
classExcel.Close False 
DoEvents 
docExcel.Quit


Ce code ne fonctionne pas, il y a une erreur à la ligne : classExcel.Range(Plage).Copy

Je n'arrive pas à régler cette erreur, à l'aide!

(Mon soucis est bien le nom de la plage que je veux copier, j'arrive à copier une plage fixe mais pas une plage dynamique nommée)

Edit : J'ai rien dis, j'ai fais une erreur dans mon copy, il faut le changer par feuilExcel.Range(Plage).Copy

Merci à Lupin.PC4 et f894009 pour votre aide c'est super sympa ;)
0