Comparer des fichiers sur tous un trimestre

Bonjour,

Tous les trimestre nous devons comparer des fichiers excel. A savoir on prend le dernier du fichier du trimestre précédent, le 1er fichier du trimestre en cours et on les compare. Ensuite on ferme le fichier du trimestre précédent. On ouvre le 2ème fichier du trimestre en cours et on le compare au 1er fichier du trimestre en cours. On ferme le 1er fichier du trimestre en cous et on ouvre le 3ème fichier du trimestre en cours et on le compare au 2ème. Etc

Sachant qu'il y a un fichier par jour même pour les week-end et les jours féries.

Mon problème n'est pas la comparaison des fichier en vba mais plutôt de coder le processus d'ouverture et de fermeture des fichiers.

Grossièrement mon code est :

Ouverture fichier trimestre précédent

Ouverture 1er fichier du trimestre

For

On compare toutes les lignes

Conditions

On ajoute une date

Next

Le problème c'est que je fais la 1ère comparaison de fichiers mais je ne sais pas comment faire ensuite pour les autres.

Je ne sais pas si c'est clair.

Ci-joint un exemple de fichier.

Merci d'avance pour votre aide

Bonjour Marty15,

voici un exemple,

Sub Test()
    Dim chemin As Style, fichier As String, i As Integer
    Dim MyFiles() As String

    'ouverture du dernier du fichier du trimestre précédent
    Workbooks.Open "C:\zz1" & Application.PathSeparator & LeDernierFichier.xls 'à adapter "C:\zz1" et LeDernierFichier.xls
    Set wk0 = ActiveWorkbook

    chemin = "C:\zz2" & Application.PathSeparator       'modifier ("C:\zz2") pour le répertoire du  trimestre actuel
    fichier = Dir(chemin)

    'récupérer les fichiers du trimestre dans la liste MyFiles
    Do While fichier <> ""
      ReDim Preserve MyFiles(i)
      MyFiles(i) = fichier
      i = i + 1
      fichier = Dir()
    Loop

    'arriver à cette étape on ouvre le premier fichier de la liste MyFiles
    Workbooks.Open chemin & MyFiles(0)

    'faire le test entre le fichier wk0 et le premier fichier de la liste MyFiles ici
    'exécuter votre macro de comparaison:
    'test_compare(wk0, Workbooks(MyFiles(0)))

    'puis fermeture du fichier du trimestre précédent
    wk0.Close SaveChanges:=False   'adapter à True si besoin
    Set wk0 = Nothing

    'boucle sur tous les fichiers de MyFiles en commencant par le 2èm
    For i = LBound(MyFiles) + 1 To UBound(MyFiles)
      Workbooks.Open chemin & MyFiles(i)  ' à la premiere boucle ouverture du 2èm fichier de la liste
     'exécuter votre macro de comparaison:
     'test_compare(Workbooks(MyFiles(i-1)), Workbooks(MyFiles(i)))

'     fermeture du premier fichier de la liste MyFiles ... puis du second etc.
      Workbooks(MyFiles(i - 1)).Close SaveChanges:=False   'adapter à True si besoin
    Next
End Sub

Bonjour sabV,

Merci beaucoup pour cette réponse rapide. Je vais tester ça.

Bonjour,

Ca marche nickel

J'ai une dernière petite question avant de clôre le sujet :

Avec ce code j'ai une erreur 438 (Prorpiété ou méthode non grée par cet objet) sur la dernière ligne et j'avoue que je ne comprends pas (si vous pouviez m'aider ou s'il y a une doc). Merci d'avance (c'est toujours avec le même fichier que j'ai mis en pj dans le 1er post) :

Dim chemin As String

Dim fichier As String, j As Integer, i As Integer

Dim MyFiles() As String

Dim valeur As Range

fichier2 = Worksheets("Feuil1").Range("B3").Value 'Fichier du trimestre précédent

'ouverture du dernier du fichier du trimestre précédent

Workbooks.Open "D:\Test" & Application.PathSeparator & fichier2

Set wk0 = ActiveWorkbook

chemin = "D:\Test\Test2" & Application.PathSeparator 'Chemin du trimestre actuel

fichier = Dir(chemin)

'récupérer les fichiers du trimestre dans la liste MyFiles

Do While fichier <> ""

ReDim Preserve MyFiles(j)

MyFiles(j) = fichier

j = j + 1

fichier = Dir()

Loop

'arriver à cette étape on ouvre le premier fichier de la liste MyFiles

Workbooks.Open chemin & MyFiles(0)

'faire le test entre le fichier wk0 et le premier fichier de la liste MyFiles ici

'exécuter votre macro de comparaison

For i = 4 To 50

Set valeur = Windows(MyFiles(0)).Cells(i, 1).Value

Rechercher des sujets similaires à "comparer fichiers tous trimestre"