Copier 2 feuilles de 2 classeurs différents dans un autre classe

Fermé
Thinkvantage - Modifié par Thinkvantage le 10/06/2015 à 09:40
thev Messages postés 1855 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 13 mai 2024 - 12 juin 2015 à 13:53
Bonjour,

Je cherche à copier la feuille appelée "Articles" d'un fichier xlsx choisi par l'utilisateur dans mon classeur destinataire (Fichiercata) à la feuille 2, ainsi que la feuille 1 du fichier cata dans mon fichier destinataire à la feuille 3.


Mon code ne fonctionne pas, et je n'arrive pas à savoir pourquoi. Si vous avez une idée, n'hésitez pas ! Merci d'avance :)

Sub Bouton4_Cliquer()

Dim wkDest As Workbook ' Classeur destinataire

Dim Nom_Fichier As Variant

Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")

If Nom_Fichier <> False Then

' Set wkDest = Workbooks.Open(Nom_Fichier)

' wkDest.Activate

End If


Set wkDest = Application.Workbooks.Open("C:\Users\dfa\Documents\Fichiercata.xlsm")

Workbooks(Nom_Fichier).Sheets("Articles").Copy wkDest.Sheets("Feuil2").Range("A1")

Workbooks("cata.xlsx").Sheets("Feuil1").Cells.Copy wkDest.Sheets("Feuil3").Range("A1")


wkDest.Close True 'Ferme en sauvant.


End Sub


A voir également:

1 réponse

thev Messages postés 1855 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 13 mai 2024 683
12 juin 2015 à 13:53
Bonjour,
Code corrigé

Sub Bouton4_Cliquer()

Dim wkOrig As Workbook ' Classeur origine
Dim wkDest As Workbook ' Classeur destinataire

Dim Nom_Fichier As Variant
 
Nom_Fichier = Application.GetOpenFilename("Fichiers Excel (*.xlsx), *.xlsx")
If Nom_Fichier <> False Then
   Set wkOrig = Workbooks.Open(Nom_Fichier)
End If

Set wkDest = Application.Workbooks.Open("C:\Users\dfa\Documents\Fichiercata.xlsm")
 
wkOrig.Sheets("Articles").Cells.Copy
wkDest.Sheets("Feuil2").Paste Destination:=wkDest.Sheets("Feuil2").Cells

Workbooks("cata.xlsx").Sheets("Feuil1").Cells.Copy
wkDest.Sheets("Feuil3").Paste Destination:=wkDest.Sheets("Feuil3").Cells

wkOrig.Close
wkDest.Close True 'Ferme en sauvant.


End Sub



--
0