Copier-Coller données de plusieurs feuilles d'un classeur vers un autre

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...

Vous me seriez d'une très grande aide, si vous parveniez à trouvez une solution à mon problème

Merci

18classeur-a.xlsm (44.52 Ko)
18classeur-b.xlsx (10.02 Ko)

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

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

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

Ça fonctionne !

Un grand merci à vous et un grand bravo

Rechercher des sujets similaires à "copier coller donnees feuilles classeur"