Récupèration plage en VBA

Résolu
linkcr15 -  
linkcr15 Messages postés 423 Statut Membre -
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

  1. Utilisateur anonyme
     
    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
  2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Votre soucis, c'est le nom de la plage ou de trouver la dernier cellule de la plage?????
    0
  3. linkcr15 Messages postés 423 Statut Membre 12
     
    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