VBA - Tri conditionnel & copie dans un autre fichier

Bonjour Mesdames, Messieurs,

Aujourd'hui est un grand jour puisque, après tant de fichiers analysés à la mains, je me révolte. Aujourd'hui, je me lance dans la programmation VBA.

Je vous explique ma mission :

J'ai dans un dossier A à l'adresse suivante C:\Users\hadri\OneDrive\Bureau\Daher\Quality\33B6658\BeforeToolUpdate\ qui contient un ensemble de fichiers .xlsm, possédant tous la même structure.

Dans un autre dossier, j'ai un fichier Analysis4C à l'adresse suivante "C:\Users\hadri\OneDrive\Bureau\Daher\Quality\Analysis\Analysis4C.xlsm".

Je voudrais créer une macro qui :

  • Ouvre le premier fichier du Dossier A en feuille "Form 3 EN9102"
  • Si J173 est non vide :

_ouvrir fichier Analysis4C

_dans la première case vide de la colonne A, insérer le nom du fichier (étape que je n'ai pas du tout réussi à coder)

_ Copier A173

_ Coller A173 dans fichier Analysis4C dans la première case vide de la colonne B

_ Copier C173

_Coller C173 dans fichier Analysis4C dans la première case vide de la colonne C

_ Copier G173

_Coller G173 dans fichier Analysis4C dans la première case vide de la colonne D

_ Copier J173

_Coller J173 dans fichier Analysis4C dans la première case vide de la colonne E

  • Ouvre le second fichier du Dossier A en feuille "Form 3 EN9102"
etc...

Je vais finalement récupérer un fichier Analysis4C contenant toutes les lignes des fichiers du dossier A où J173 n"est pas vide.

La tambouille que j'ai préparée :

Sub BoucleFichiers()
    Dim Chemin As String, Fichier As String

    Dim wB As Workbook 'Analysis4C
    Set wB = Workbooks.Open(Filename:="C:\Users\hadri\OneDrive\Bureau\XXX\Quality\Analysis\Analysis4C.xlsm")

    'Définit le répertoire contenant les fichiers
    Chemin = "C:\Users\hadri\OneDrive\Bureau\XXX\Quality\33B6658\BeforeToolUpdate\"

    'Boucle sur tous les fichiers xlsm du répertoire.
    Fichier = Dir(Chemin & "*.xlsm")

    Do While Len(Fichier) > 0

        'écrit le résultat dans la fenêtre d'exécution (Ctrl+G)
        Debug.Print Chemin & Fichier
        Fichier = Dir()

        Sheets("Form 3 EN9102 (EN)").Select 'séléction feuille FORM 3

        If IsEmpty(Range("J173").Value) = False Then 'Si non conformité détéctée dans L173

            Range("A173").Select 'Séléctionne cases appropriées L173
            Selection.Copy 'copie cellule A173
            wB.Open 'ouvrir fichier Analysis4C
            Selection.Paste (Range("B2").End(xlDown).Offset(1).Select) 'coller sur première cellule vide en B
            wB.Close 'fermer fichier Analysis4C

            Range("C173").Select 'Séléctionne cases appropriées L173
            Selection.Copy 'copie cellule C173
            wB.Open 'ouvrir fichier Analysis4C
            Selection.Paste (Range("C2").End(xlDown).Offset(1).Select) 'coller sur première cellule vide en B
            wB.Close 'fermer fichier Analysis4C

            Range("G173").Select 'Séléctionne cases appropriées L173
            Selection.Copy 'copie cellule G173
            wB.Open 'ouvrir fichier Analysis4C
            Selection.Paste (Range("D2").End(xlDown).Offset(1).Select) 'coller sur première cellule vide en B
            wB.Close 'fermer fichier Analysis4C

            Range("J173").Select 'Séléctionne cases appropriées L173
            Selection.Copy 'copie cellule J173
            wB.Open 'ouvrir fichier Analysis4C
            Selection.Paste (Range("E2").End(xlDown).Offset(1).Select) 'coller sur première cellule vide en B
            wB.Close 'fermer fichier Analysis4C
        End If

    Loop

End Sub

Je suis certain que je commets des erreurs sur la syntaxe, et peut être même des atrocités sur la philosophie de VBA.

Je suis preneur de toute aide, sur une partie ou le tout.

Je vous remercie d'avoir pris le temps de me lire.

Rechercher des sujets similaires à "vba tri conditionnel copie fichier"