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 -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Copier/Coller plusieurs classeurs via VBA
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Copier-coller - Accueil - Informatique
- Style d'écriture a copier coller - Guide
- Arobase copier coller - Forum Windows 10
5 réponses
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
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
RE,
Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.
Merci
Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.
Merci
Re
ci dessous un code non testé, donc...
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
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
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
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
et voilà essais
https://www.cjoint.com/?3EDp0zNfukE
https://www.cjoint.com/?3EDp0zNfukE
Oups! j'étais pressé (mauvais alibi)
https://www.cjoint.com/?3EDqYVmvXDE
n'ouvre pas le zip maisextrait le
https://www.cjoint.com/?3EDqYVmvXDE
n'ouvre pas le zip maisextrait le
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
Les 5 classeurs se trouvent dans le même dossier nommé "Suivi des temps CIR" ils sont tous au format xlsm.
Merci