Copier/Coller plusieurs classeurs via VBA

Résolu
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Une question un peu compliquée. J'ai 4 classeurs parfaitement identiques nommés classeur1, classeur2, classeur3, classeur4. Dans mon 5ème classeur, dans ma feuille "Synthèse Globale", j'aimerais pouvoir développer une macro qui permettrai de copier/Coller les colonnes de C à E contenu dans l'onglet "Saisie" de chaque classeur. J'aimerais que les copier/Coller se fassent les uns à la suite des autres, par exemple la macro commence à copier/coller les colonnes de C à E de l'onglet "Saisie" du classeur1, puis quand on arrive à la ligne où les valeurs contenues dans ces colonnes sont nulles (ou plutôt cellule vide), la macro lance le copier/coller des colonnes C à E de l'onglet "Saisie" du classeur2... et ainsi de suite jusqu'au classeur4.
J'espère avoir été assez claire dans mes explications. Je ne sais pas du tout si une telle macro peut être développée.

Merci beaucoup pour votre aide,
A voir également:

5 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,
Où se trouvent les 4 classeurs et le 5°: dans le m^me dossier ?
et sont les seuls dans le ou les dossiers concernés?

Edit 14:03h
suffixes: xls, xlsx, xlm, xlsm des 4 ?
Michel
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
RE,
Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.

Merci
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
RE,
Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.

Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Re
ci dessous un code non testé, donc...
Option Explicit
'------
Sub compiler_CaE()
Dim Chemin As String, Fich As String
Dim Derlig As Integer, Ligvide As Long, Tampon

'fige le défilement de l'écran
Application.ScreenUpdating = False

Chemin = ThisWorkbook.Path
ChDir Chemin
Fich = Dir("*.xlsm")
While Fich <> "" And Fich <> "classeur5.xlsm"
Workbooks.Open Filename:=Fich 'ouvre le classeur
With Sheets("saisie")
Derlig = .Columns("C:E").Find(what:="*", searchdirection:=xlPrevious).Row
Tampon = .Range("C1:E" & Derlig) 'mémorise les données à compiler dans classeur5
End With
Workbooks(Fich).Close

With ThisWorkbook.Sheets("Synthèse Globale")
Ligvide = .Columns("C:E").Find(what:="", after:=Range("C:" & .Cells.Rows.Count)).Row
Cells(Ligvid, "C").Resize(UBound(Tampon), 3) = Tampon
End With

'affecte le fichier suivant (utilisation du joker " * " utilisé pour la def du 1° fichier)
Fich = Dir
Wend

Sheets("Synthèse Globale").Activate
MsgBox "compilation terminée"
End Sub


pour bien faire pourrais tu mettre en pièce jointe un des classeurs source et me donner les nom exact du classeur5 et des classeurs source
je restitue actuellement dans les colonnes C-E du classeur 5
dans l'attente, d'avance merci; Je repasse dans 1h - 1h30

pour mettre en Pj
Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente

Michel
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
Voici le lien demandé https://www.cjoint.com/?0EDpgKcHZbD
Mes classeurs sources s'appellent respectivement: classeur1.xlsm, classeur2.xlsm, classeur3.xlsm, et classeur4.xlsm. Mon classeur destinataire s'appelle "Base de données.xlsm"
Merci
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
je pense que je m'y prend mal, lorsque j'ouvre les fichiers et que je vais dans l'onglet Développeur puis VBA je ne trouve aucune macro de créée ...?
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
Oups! j'étais pressé (mauvais alibi)
https://www.cjoint.com/?3EDqYVmvXDE
n'ouvre pas le zip maisextrait le
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci beaucoup Michel, mais je vais encore vous embêter un petit peu. Votre code marche très bien, je l'ai copier dans mon classeur Base de données et tout fonctionne, par contre j'ai essayé de modifier le code pour qu'il me recopie les colonnes de B à I et pas seulement de C à E. Mais là ça ne marche plus, il me recopie uniquement les colonnes de B à I du classeur1 puis plus rien. Par contre message d'erreur ne s'affiche.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour,
Suis absent toute la journée (météo splendide ici sans mistral...)
met ton classeur base de données en PJ
0
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention   > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
https://www.cjoint.com/?0EEkeCWKK8N
Merci, et bonne journée au soleil
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Jojos54 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
Tu dois pouvoir t'en sortir avec ce type d'instruction.
pour l'ouverture du classeur :
Workbooks.Open Filename:=ThisWorkbook.Path & "\nom_du_classeur"
la fermeture avec l'instruction workbooks("nom_du_classeur").close False

et ensuite pour les copier coller workbook("nom_du_classeur").sheets("nom_de_l'onglet").range(column(3), column(5)).copy

et un .paste derrière à l'endroit ou tu le veux.
-2
ti_mouton Messages postés 143 Date d'inscription   Statut Membre Dernière intervention  
 
D'accord merci, mais j'ai oublié de préciser que je suis vraiment très débutante... Est ce que vous pourriez me détailler un peu plus tout ca ? j'ai du mal à comprendre comment faire pour que les copier/coller se fassent les uns à la suite des autres.
Merci
0