XL 2016 Application d'un copier coller sur plusieurs fichiers

anis4010

XLDnaute Nouveau
Bonjour ,

Je viens de commencer , a me mettre sur ce fameux language qui est Visual Basic afin de pouvoir modifier mes fichiers excel tous en meme temps .

Voila mon soucis a l'heure actuelle j'ai constitué un fichier de base auquel je dois aller dans la feuille qui s'appelle Données copier de A1 a M29 et coller vers tous les fichier excel d'un dossier sur la feuille données

Et ce qui me manque c'est cette Etape coller vers tous les fichier excel d'un dossier

Voici mon code :

Code:
Sub Macro1()
'
' Macro1 Macro
'

'

    Windows("TD BaseCorrectionOrange.xlsx").Activate
    Sheets("Données").Select
    Range("A1:M29").Select
    Selection.Copy
    Windows("TD 10 LBT80.xlsx").Activate
    Sheets("Données").Select
    Range("A1").Select
    ActiveSheet.Paste
End Sub

Si quelqu'un pouvait m'aider , sur cette étape
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Anis, bonjour le forum,

Essaie comme ça (à adapter) :

VB:
Sub Macro1()
Dim CA As String 'déclare la variabe CA (Chemin d'Accès)
Dim CS As Workbook 'déclare la variabe CS (Classeur Source)
Dim OS As Worksheet 'déclare la variabe OS (Onglet Source)
Dim CD As Workbook 'déclare la variabe CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variabe OD (Onglet Destination)
Dim F As String 'déclare la variabe F (Fichier)

CA = "C:\Users\Anis\Documents\ETC\" 'à adapter à ton cas, c'est le chemin d'accès des fichiers...
Set CS = ThisWorkbook 'définit la classeur source CS
Set OS = CS.Worksheets("Données") 'définit l'onglet source OS
F = Dir(CA) 'définit le premier fichier du dossier du chemin d'accès
Do While F <> "" 'boucle tant qu'il esxiste des fichiers
    Set CD = Workbooks.Open(CA & F) 'définit le classeur destination CD (en l'ouvrant)
    Set OD = CD.Worksheets("Données") 'définit l'onglet destination OD
    OS.Range("A1:M29").Copy OD.Range("A1") 'copie la plage A1:M29 de l'onglet source et la colle dans A1 de l'onglet destination
    CD.Close True 'ferne le classeur en enregistrant les changements
    F = Dir 'définit le prochain fichier du dossier du chemin d'accès
Loop 'boucle
End Sub

La règle d'or en VBA, c'est d'éviter autant que tu le peux les Activate/Select.
VB:
 Windows("TD BaseCorrectionOrange.xlsx").Activate
    Sheets("Données").Select
    Range("A1:M29").Select
    Selection.Copy
    Windows("TD 10 LBT80.xlsx").Activate
    Sheets("Données").Select
    Range("A1").Select
    ActiveSheet.Paste
Peut s écrire :
VB:
 Windows("TD BaseCorrectionOrange.xlsx").Sheets("Données").Range("A1:M29").Copy Windows("TD 10 LBT80.xlsx").Sheets("Données").Range("A1")
Soit : Classeur_Source.Onglet-Source.Ta_Plage.copy Classeur_Destination.Onglet_Destination_Cellule_de_destination
 
Dernière édition:

anis4010

XLDnaute Nouveau
Bonjour @Robert

Merci d'avoir pris le temps de m'expliquer les fonctions , j'ai tenter ta macro en prenant soins de modifier le chemin d'accès mais rien n'y fait .
Je ne sais pas si je me trompe mais je pense que le problème viens du copier coller , car de mon coté , il faut que je copie A1:M29 dans mon fichier de base , dans la feuille Données . Une fois fait ma macro doit ouvrir un a un les fichier et les coller dans la case données et ainsi de suite

Le but est depuis la base copier et , coller pour mettre a jour les autre fichier
Je ne sais réelement pas ou est le probleme car rien ne se passe .
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, le forum

Même trame que Robert, mais petite variante de syntaxe
VB:
Sub Recopie_Multiple()
Dim rep$, fic$
Application.ScreenUpdating = False
Application.DisplayAlerts = False
rep = "C:\Users\STAPLE\TEMPO\" 'adapter le chemin
fic = Dir(rep & "*.xl??")
Do While fic <> ""
ThisWorkbook.Sheets("Données").[A1:M29].Copy Workbooks.Open(rep & fic).Sheets("Données").Cells(1)
Workbooks(fic).Close True
fic = Dir()
Loop
End Sub

PS: Mieux vaut être certain qu'il y a bien une feuille Données dans les classeurs qui seront ouverts par la macro. ;)

NB: J'ai testé et cela fonctionne.
La macro doit être dans le classeur qui contient les données en A1:M29
 

Discussions similaires

Réponses
6
Affichages
388

Statistiques des forums

Discussions
312 112
Messages
2 085 411
Membres
102 885
dernier inscrit
AISSOU