Macro VBA: Ouvre SOURCE fichier & colle dans un DEST fichier

Résolu/Fermé
c2020 Messages postés 22 Date d'inscription lundi 27 avril 2020 Statut Membre Dernière intervention 14 novembre 2022 - 27 oct. 2022 à 11:59
 f894009 - 1 nov. 2022 à 15:32

Bonjour, 

Je suis nouveau et decouvre les Macro VBA 

J'ai besoin d'une Macro qui:

1 Ouvre le Dossier et Ouvre fichier_SOURCE(1) (Je connais le chemin du dossier")

2 Copie une cellule Definit ("D7")

3 Ouvre le Fichier DESTination puis colle Dnas un Tableaux 

4 Ferme le Fichier SOurce 

Puis ouvre le 2eme fichier & ainsi de suite pour tous les fichier du Dossier 

Voici une trouvaille de Internet :

Sub Macro()
    Dim Chemin As String, Fichier As String
 
    'Définit le répertoire contenant les fichiers
    Chemin = "C:\Users\c2020\Desktop\EXCEL\PROJET\2022-10\"
 
    'Boucle sur tous les fichiers xls du répertoire.
    Fichier = Dir(Chemin & "*.xls")

End Sub

En voici une 2eme que je comprend pas mais pense est sur la bonne voie de me repondre 

Merci de completer et commenter pour que j'y arrive & comprendre comment fonctionne cela :

Sub Macro1()
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim FS As String 'décalre la variable FS (Fichier Source)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim DEST As Range 'déclare la variable DEST (celllue de DESTination)

'Si tu connais le chemin d'accès et qu'il ne bougera pas écris-le en-dessous et supprime la partie indiquée si...
CA = "C:\Users\c2020\Desktop\EXCEL\PROJET\2022-10\"
CD = "C:\Users\c2020\Desktop\EXCEL\PROJET\Reporting Octobre.xlsx"

FS = Dir(CA & "*.xlsx") 'définit le premier fichier source Excel contenu dans le dossier ayant CA comme chemin d'accès



Do While FS <> "" ' exécute tant qu'il existe des fichiers source
    Workbooks.Open CA & FS 'ouvre le fichier source FS
    Set CS = ActiveWorkbook 'définit la classeur source CS

    '*******************************************************************************************
    ' cette partie correspond à ta macro du copier/coler. Adapte là à ton cas

    'définit la cellule de destination DEST (première cellule vide de la colonne A)
    Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
    OS.Range("A1:H50").Copy DEST 'copie la plage A1:H50 de l'onglet source et la colle dans DEST

    
    '*******************************************************************************************

    'call MaMacro

    CS.Close False 'ferme le claseru source CS (sans enregistrer)
    FS = Dir 'définit le prochain fichier source excel du dossier ayant CA comme chemin d'accès
Loop 'boucle
End Sub

Merci de vos réponses et votre temps que vous preniez pour moi

A voir également:

1 réponse

Bonjour,

Pensez a modifier  les chemins et nom de fichiers sin ce n'est deja fait

Devrait aller

Sub Macro1()
    Dim CA As String 'déclare la variable CA (Chemin d'Accès)
    Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
    Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
    Dim FS As String 'décalre la variable FS (Fichier Source)
    Dim CS As Workbook 'déclare la variable CS (Classeur Source)
    Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
    Dim DEST As Range 'déclare la variable DEST (celllue de DESTination)
    
    'Si tu connais le chemin d'accès et qu'il ne bougera pas écris-le en-dessous et supprime la partie indiquée si...
    CA = "C:\Users\c2020\Desktop\EXCEL\PROJET\2022-10\"
    CD = "C:\Users\c2020\Desktop\EXCEL\PROJET\Reporting Octobre.xlsx"
    
    FS = Dir(CA & "*.xlsx") 'définit le premier fichier source Excel contenu dans le dossier ayant CA comme chemin d'accès
    Do While FS <> "" ' exécute tant qu'il existe des fichiers source
        Workbooks.Open CA & FS 'ouvre le fichier source FS
        Set CS = ActiveWorkbook 'définit la classeur source CS
    
        '*******************************************************************************************
        ' cette partie correspond à ta macro du copier/coler. Adapte là à ton cas
    
        'définit la cellule de destination DEST (première cellule vide de la colonne A)
        Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
        OS.Range("D7").Copy DEST 'copie la plage A1:H50 de l'onglet source et la colle dans DEST
    
        '*******************************************************************************************
        'call MaMacro
        Set OS = Nothing
        Set DEST = Nothing
        CS.Close False 'ferme le claseru source CS (sans enregistrer)
        FS = Dir 'définit le prochain fichier source excel du dossier ayant CA comme chemin d'accès
    Loop 'boucle
End Sub
1