Copier-Coller données de plusieurs feuilles d'un classeur vers un autre Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
M
Mendoza85
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 16 novembre 2016
Version d'Excel : 2010

Message par Mendoza85 » 10 février 2020, 17:42

Bonjour à tous,

Avant toute chose, je n'ai aucune notion de VBA...

Vous trouverez en PJ, un fichier "Classeur A" et un fichier "Classeur B".
J'aimerais copier une plage de données de plusieurs feuilles du Classeur A et les copier vers le Classeur B dans les feuilles portant le même nom.

En pratique:
Copier A1:H48 feuille CHAUFFEUR 1 Classeur A et coller vers A1:H48 feuille CHAUFFEUR 1 Classeur B
Copier A1:H48 feuille CHAUFFEUR 2 Classeur A et coller vers A1:H48 feuille CHAUFFEUR 2 Classeur B
Copier A1:H48 feuille CHAUFFEUR 3 Classeur A et coller vers A1:H48 feuille CHAUFFEUR 3 Classeur B

Voici à quoi ça ressemble actuellement (Fait pour Chauffeur A et Chauffeur B). Je me doute que ce n'est pas très académique.
Le fait est que j'ai 50 chauffeurs et que je ne vais pas m'en sortir en bricolant comme je l'ai fait...
Pour simplifier le fichier avant de vous demander de l'aide, j'ai supprimé des onglets et des macros. Les données des cellules A1:H48 du Classeur A sont issues de formules. Il faudrait que lors du collage vers le classeur B, celui-ci soit du type: "Coller des valeurs; Mise en forme des valeurs et de la source (E)".

Sub ARCHIVE02()
'
' ARCHIVE02 Macro

Workbooks.Open Filename:="""Z:\Classeur B.xlsx"""

Workbooks("Classeur A").Activate
Sheets("CHAUFFEUR 1").Select
Range("A1:H48").Select
Selection.Copy
Workbooks("Classeur B.xlsx").Activate
Sheets("CHAUFFEUR 1").Select
Range("A1").Select
Sheets("CHAUFFEUR 1").Paste

Workbooks("Classeur A").Activate
Sheets("CHAUFFEUR 2").Select
Range("A1:H48").Select
Selection.Copy
Workbooks("Classeur B.xlsx").Activate
Sheets("CHAUFFEUR 2").Select
Range("A1").Select
Sheets("CHAUFFEUR 2").Paste

End Sub



J'espère que c'est assez clair... :lole:
Vous me seriez d'une très grande aide, si vous parveniez à trouvez une solution à mon problème :mrgreen: :mrgreen:

Merci :)
Classeur B.xlsx
(10.02 Kio) Téléchargé 8 fois
Classeur A.xlsm
(44.52 Kio) Téléchargé 5 fois
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'732
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 11 février 2020, 02:02

Bonjour,

à tester,
Sub ARCHIVE02()
Set wk1 = Workbooks("Classeur A")
Workbooks.Open Filename:="""Z:\Classeur B.xlsx"""
Set wk2 = ActiveWorkbook

For Each sht In wk1.Worksheets
    wk2.sht.Range("A1:H48") = wk1.sht.Range("A1:H48").Value
Next sht
End Sub
Vive ces nouvelles saisons qui nous colorent.
isabelle
M
Mendoza85
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 16 novembre 2016
Version d'Excel : 2010

Message par Mendoza85 » 11 février 2020, 13:34

Bonjour,
Merci beaucoup pour votre réponse :)

Il apparaît un message d'erreur indiquant: Erreur d'exécution 438

wk2.sht.Range("A1:H48") = wk1.sht.Range("A1:H48").Value

Avez-vous une idée?

Merci encore :D
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'732
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 12 février 2020, 16:12

re,

voici la modification,
Sub ARCHIVE02()
Set wk1 = Workbooks("Classeur A.xlsm")
'Workbooks.Open Filename:="""Z:\Classeur B.xlsx"""
'Set wk2 = ActiveWorkbook
Set wk2 = Workbooks("Classeur B.xlsx")

For Each sht In wk1.Worksheets
    wk2.Sheets(sht.Name).Range("A1:H48") = wk1.Sheets(sht.Name).Range("A1:H48").Value
    wk1.Sheets(sht.Name).Range("A1:H48").Copy
    wk2.Sheets(sht.Name).Range("A1").PasteSpecial (xlPasteFormats)
Next sht
End Sub
1 membre du forum aime ce message.
Vive ces nouvelles saisons qui nous colorent.
isabelle
M
Mendoza85
Nouveau venu
Nouveau venu
Messages : 9
Inscrit le : 16 novembre 2016
Version d'Excel : 2010

Message par Mendoza85 » 14 février 2020, 15:21

Ça fonctionne !
Un grand merci à vous et un grand bravo :)
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message