Copier une partie d'un classeur excel dans 40 dossiers différent
Résolu/Fermé
patoche49
Messages postés
19
Date d'inscription
jeudi 12 juillet 2012
Statut
Membre
Dernière intervention
11 octobre 2014
-
18 juin 2014 à 16:34
patoche49 Messages postés 19 Date d'inscription jeudi 12 juillet 2012 Statut Membre Dernière intervention 11 octobre 2014 - 20 juin 2014 à 11:30
patoche49 Messages postés 19 Date d'inscription jeudi 12 juillet 2012 Statut Membre Dernière intervention 11 octobre 2014 - 20 juin 2014 à 11:30
A voir également:
- Copier une partie d'un classeur excel dans 40 dossiers différent
- Liste déroulante excel - Guide
- Copier une vidéo youtube - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
18 juin 2014 à 18:10
18 juin 2014 à 18:10
Bonjour,
Pas de ligne en gras et pas de message d'erreur !!!
Les explications ne sont pas très claires: Mon problème vient du fait que chaque fichier destinataire est différent et la macro que j'ai créé fait référence à celui que j'ai pris comme modèle
Pas de ligne en gras et pas de message d'erreur !!!
Les explications ne sont pas très claires: Mon problème vient du fait que chaque fichier destinataire est différent et la macro que j'ai créé fait référence à celui que j'ai pris comme modèle
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
19 juin 2014 à 10:18
19 juin 2014 à 10:18
Bonjour,
Windows("MARTIN Jean RCOM.xlsx").Activate
n'est pas un chemin valide!!!!!!!!!!!!
Windows("MARTIN Jean RCOM.xlsx").Activate
n'est pas un chemin valide!!!!!!!!!!!!
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
Modifié par Polux31 le 19/06/2014 à 17:17
Modifié par Polux31 le 19/06/2014 à 17:17
Il faut bien sûr adapter le chemin d'accès du répertoire, le nom des feuilles, la plage à copier etc ...
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Option Explicit '*** Macro qui lance le traitement: '*** 1 - Création des objets : Workbook, Worksheet et Range (qui contient la plage à copier) '*** 2 - Appel de la procédure RecupFichiersXL(Arg()) '*** 3 - Boucle sur tous les éléments du tableau mTab() '*** ° Ouvre le fichier Excel à mettre à jour '*** ° Création des objets : Workbook, Worksheet '*** ° Copie de la plage '*** ° Sauvegarde et ferme le fichier '*** ° Ferme les objets et passe à l'élément suivant du tableau '' Public Sub MaMacro() Dim mTab() Dim wkOut As Workbook Dim ws As Worksheet Dim wsOut As Worksheet Dim plage As Range Dim i As Long ' Désactive les messages d'alerte Application.DisplayAlerts = False ' Instanciation de l'objet Worksheet (Feuille qui contient les données à copier) Set ws = ThisWorkbook.Worksheets("Feuil1") ' /!\ A adapter ' Instanciation de l'objet Range (Plage des cellules à copier) Set plage = ws.Range("A2:C20") ' /!\ A adapter 'appel de la procédure qui remplit le tableau Call RecupFichiersXL(mTab()) ' i = indice du tableau For i = LBound(mTab()) To UBound(mTab()) ' Instanciation de l'objet Workbook (Fichier de derstination pour la copie) Set wkOut = Workbooks.Open(mTab(i)) ' Instanciation de l'objet Worksheet (Feuille destination) Set wsOut = wkOut.Worksheets("Feuil1") ' /!\ A adapter ' Copie de la plage plage.Copy Destination:=wsOut.Range("A2") ' /!\ A adapter ' Sauvegarde du fichier wkOut.Save ' Fermeture du fichier wkOut.Close ' Libération des objets et de la mémoire Set wsOut = Nothing Set wkOut = Nothing ' On passe à l'élément suivant du tableau Next i ' Active les messages d'alerte Application.DisplayAlerts = True 'Libération de l'objet et de la mémoire Set ws = Nothing MsgBox "Traitement terminé !!!" End Sub '*** Procédure qui parcourt un répertoire '*** Elle recoit en paramètre un tableau '*** Elle remplit le tableau passé en référence '*** avec le chemin complet d'accès des fichiers xlsx '' Private Sub RecupFichiersXL(ByRef mTab()) Dim Chemin As String Dim Fichier As String Dim i As Long 'Définit le répertoire contenant les fichiers '/!\ adapter le chemin complet du répertoire Chemin = "D:\CCM\" 'Boucle sur tous les fichiers xlsx du répertoire. Fichier = Dir(Chemin & "*.xlsx") Do While Len(Fichier) > 0 ReDim Preserve mTab(i) mTab(i) = Chemin & Fichier i = i + 1 Fichier = Dir() Loop End Sub
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
19 juin 2014 à 20:56
19 juin 2014 à 20:56
Merci à Franck pour le complément d'infos ;0)
patoche49
Messages postés
19
Date d'inscription
jeudi 12 juillet 2012
Statut
Membre
Dernière intervention
11 octobre 2014
20 juin 2014 à 11:30
20 juin 2014 à 11:30
je vais tester. Cela me parait un peu compliqué pour un débutant comme moi. Encore Merci pour ton aide.
19 juin 2014 à 09:09
Pour info, la ligne en gras est consultable ICI
19 juin 2014 à 09:51
Merci mais je ne comprends toujours pas ce qu'il veut faire ;0)
19 juin 2014 à 10:26
Attendons...
19 juin 2014 à 10:49
Effectivement ce n'est pas très clair.
Je vais essayer de le formuler différemment :
Afin d'éviter de faire 50 fois un copier coller, je voudrais créer une macro :
J'ai 3 colonnes dans un fichier A que je veux recopier à l'identique dans 50 fichiers différents, nommés Dupont, Martin, Jean... (50 noms différents).
la logique que j'ai tenté pour créer la macro (qui n'est peut être pas la bonne...)
J'ouvre le fichier A
je fais un copier des 3 colonnes
je ferme le fichier A
j'ouvre le fichier Dupont
je fais un coller des 3 colonnes
Pour exécuter la macro j'ouvre le fichier Martin et l'exécution se passe bien pour les 3 1er points mais bloque sur l'ouverture du fichier Martin car elle ouvre le fichier Dupont. Normal car c'est celui que j'ai pris comme référence dans la macro. Comment faire pour que le nom change à chaque fois ?
J'espère avoir été plus clair. Ci-dessous la nouvelle macro que j'ai créé.
Sub coprcom()
'
' coprcom Macro
'
' Touche de raccourci du clavier: Ctrl+m
'
ChDir "S:\C.M. Accueil\Commercial\2014\RCOM TC"
Workbooks.Open Filename:= _
"S:\C.M. Accueil\Commercial\2014\RCOM TC\A RCOM.xlsx"
Range("A8:B34").Select
Selection.Copy
ActiveWindow.Close
Workbooks.Open Filename:= _
"S:\C.M. Accueil\Commercial\2014\RCOM TC\Dupont RCOM.xlsx"
Range("A8").Select
ActiveSheet.PasteSpecial Format:="Texte Unicode", Link:=False, _
DisplayAsIcon:=False, NoHTMLFormatting:=True
End Sub
19 juin 2014 à 10:56