Copier/Coller plusieurs classeurs via VBA

Résolu/Fermé
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 - 29 mai 2015 à 11:54
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 2 juin 2015 à 09:10
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 29/05/2015 à 14:03
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
29 mai 2015 à 14:36
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
Modifié par ti_mouton le 29/05/2015 à 14:37
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 29/05/2015 à 14:58
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
29 mai 2015 à 15:10
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
29 mai 2015 à 15:52
0
ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
29 mai 2015 à 16:08
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310 > ti_mouton Messages postés 143 Date d'inscription vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
29 mai 2015 à 16:51
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
29 mai 2015 à 22:53
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
30 mai 2015 à 06:53
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
30 mai 2015 à 10:06
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 jeudi 28 mai 2015 Statut Membre Dernière intervention 5 novembre 2015
29 mai 2015 à 14:30
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 vendredi 29 mai 2015 Statut Membre Dernière intervention 5 septembre 2020
29 mai 2015 à 14:36
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