Parcourir fichier + comparaison
Bonjour,
Je cherche une solution qui me permettrai de parcourir les cellule de plusieurs classeurs et de les comparer pour ressortir la cellule avec la plus petite valeur dans le but de la copier dans un dernier classeurs. Le but est concrètement de créer un fichier contant les meilleurs prix proposés.
J'ai plusieurs piste de réflexions et toutes aboutissent a ce problème.
Merci d'avance !
Bon, j'ai commencer a coder ceci sans trop de succès :
Sub rechercherMeilleurPrix()
Dim Rep As String, Fichier As String
Dim i As Integer
Dim j As Integer
i = 7
j = 7
Rep = "C:\Rep1\rep 2\"
Fichier = Dir(Rep)
Do While Fichier <> ""
Fichier = Left(Fichier, InStr(Fichier, ".") - 1)
Do While (Sheets("Prixmin").Cells(i, 10) <> "")
Do While (Workbooks(Fichier).Sheets("Prixmin").Cells(j, 10) <> "")
If (Sheets("Prixmin").Cells(j, 10) > Workbooks(Fichier).Sheets("Prix").Cells(j, 10)) Then
Sheets("Prixmin").Cells(j, 10) = Workbooks(Fichier).Sheets("prix").Cells(j, 10)
End If
j = j + 1
Loop
i = i + 1
Loop
Fichier = Dir
Loop
End SubFichier contient bien un nom de fichier correct.
Seulement, à la ligne
Do While (Workbooks(Fichier).Sheets("Prix").Cells(j, 10) <> "")Il y a une erreur : l'indice n'appartient pas à la sélection.
Quelqu'un aurait une idée ?
J'ai fini par trouver tout seul, voici donc un exemple pour ceux que ça intéresse.
Ce programme permet de comparer une valeur d'une colonne dans un fichier "final" à une valeur situer dans d'autre fichier ce trouvant dans un répertoire.
Le fichier final a la même composition de colonnes et lignes mais pas forcément les même valeur qu'un fichier dans le rep.
Sub rechercherMeilleurPrix()
Dim Rep As String, Fichier As String
Dim i As Integer
Dim wb As Workbook
Dim a As Long
Dim b As Long
Rep = "C:\rep1\rep2\"
Fichier = Dir(Rep)
'========================================================================
'CHECK DE CHAQUE FICHIER SITUE DANS "C:\rep1\rep2\"
'========================================================================
Do While Fichier <> ""
i = 2 'première lignes que l'on veut traiter
Set wb = Workbooks.Open(Rep + Fichier) 'Ouverture du fichier
'Fichier = Left(Fichier, InStr(Fichier, ".") - 1) 'c'est pour enlever l’extension au nom du fichier mais ça fonctionne quand même
Windows("Classeur1").Activate
'====================================================================
'COMPARAISON DE CHAQUE LIGNES DU FICHIER FINAL AVEC CEUX SITUES DANS NOTRE REP
'=====================================================================
Do While (Sheets("feuill1").Cells(i, 10) <> "") 'colonne ou l'on veut comparer la valeur
a = Cells(i, 10).Value
Windows(Fichier).Activate
Sheets("feuill1").Select
b = Cells(i, 10).Value
If (a > b Or a = 0) Then
If (b <> 0) Then
Windows("Classeur1").Activate
Sheets("feuill1").Select
Cells(i, 10).Value = b
End If
End If
i = i + 1
Windows("Classeur1").Activate
Loop
'========================================================================
wb.Close
Fichier = Dir
Loop
'=============================================================================
End Sub