Récupèration plage en VBA
Résolu
linkcr15
-
linkcr15 Messages postés 423 Statut Membre -
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 :
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!
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
-
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 -
Bonjour,
Votre soucis, c'est le nom de la plage ou de trouver la dernier cellule de la plage????? -
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 ;)