Copier contenu de plusieurs classeurs vers une seule feuille d'un autre classeur

CMoa

XLDnaute Occasionnel
Bonjour à tous
Ma demande est presque dans le titre.
En fait j'ai plusieurs classeurs aux noms différents qui contiennent tous une feuille nommée "récap".
Je souhaite copier le contenu de toutes ces feuille vers un classeur précis "USFRM.xls"et une feuille :"feuil1".
Le nombre de lignes contenues dans les feuilles "récap" est variable mais pas le nombre de colonnes:15 de A à O.
Code:
Private Sub CommandButton1_Click()
Dim Wb As Workbook, i As Integer
i = 1
For Each Wb In Workbooks
If Wb.Name <> ThisWorkbook.Name Then
Wb.Activate
Ligne = 2
debut = Ligne
For Wb = 1 To 12
ActiveWorkbook.Sheets("récap").Range("A2:O204").Copy Destination:=Workbooks("USFRM").Sheets("Feuil1").Cells(Ligne, 2)
Ligne = Ligne + 200
Next Wb
End If
Next
End Sub
Le nombre de classeurs à traîter est variable et peut aller de 1 à 12.
Ce code (adapté d'une création de pierrejean)recopie uniquement un seul classeur ouvert.
Merci pour votre aide
 

skoobi

XLDnaute Barbatruc
Re : Copier contenu de plusieurs classeurs vers une seule feuille d'un autre classeur

Bonjour,

Ce code (adapté d'une création de pierrejean)recopie uniquement un seul classeur ouvert.

Euuhhh non car For Each Wb In Workbooks va bien boucler sur tous les classeurs ouvert. Le problème est que tu refais une autre boucle For Wb = 1 To 12 (ce qui m'étonne c'est que la macro ne bug pas à ce moment là...) ce qui n'a pas de sens. Voici la correction:

Code:
Private Sub CommandButton1_Click()
  Dim Wb As Workbook, i As Integer
  Ligne = 2
  For Each Wb In Workbooks
    If Wb.Name <> ThisWorkbook.Name Then
      Wb.Sheets("récap").Range("A2:O204").Copy Destination:=Workbooks("USFRM").Sheets("Feuil1").Cells(Ligne, 2)
      Ligne = Ligne + 200
    End If
   Next
End Sub
 
Dernière édition:

CMoa

XLDnaute Occasionnel
Re : Copier contenu de plusieurs classeurs vers une seule feuille d'un autre classeur

Bonsoir le Forum;Skoobi
Merci pour cette rectification : ça marche impécablement bien.
Comment faire pour coller les données à la suite des autres sans prédéfinir une cellule de début?
ici on a :Ligne + 200
je sais pas je pense à : .End(xlUp).Row
mais je ne sais pas où le positionner afin d'obtenir le résultat voulu.
@+
 

CMoa

XLDnaute Occasionnel
Re : Copier contenu de plusieurs classeurs vers une seule feuille d'un autre classeur

Re Skoobi;le Forum
J'étais loin d'arriver à ce résultat.
C'est comme d'habitude :tout simplement EXCELLENT.
Merci encore pour ton aide :)
@ bientôt
Cmoa
 

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 546
Membres
104 208
dernier inscrit
laura29180