Sub MiseAJour()
Dim i As Long
Dim j As Long
Dim jMax As Long
Dim RépertoireDeTravail As String
Dim NomFichierRecherché As String
Dim DésignationMachine As String
Dim NuméroDeSérie As String
'Definition du repertorie de travail
RépertoireDeTravail = ActiveWorkbook.Path
RépertoireDeTravail = Left(RépertoireDeTravail, InStrRev(RépertoireDeTravail, "\") - 1)
'1 pour le fichier, 2 pour le répertoire / 0 inutilisé, juste pour avoir une dimension
ReDim TabFichiersRépertoiresCSV(1 To 2, 0 To 0)
'Chargement des noms de fichiers CSV et leurs répertoires en table
Call ParcoursRépertoire(RépertoireDeTravail)
Application.ScreenUpdating = False
'Retirer les filtres pour que le compte soit correct
If Not ActiveSheet.AutoFilter Is Nothing Then ActiveSheet.AutoFilter.ShowAllData
'Calcul du nombre de lignes a traiter
jMax = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'Recherche de la DésignationMachine et inscription en colonne N
For j = 2 To jMax
'recupération du code machine
NomFichierRecherché = UCase(Trim(ActiveSheet.Range("C" & j).Value)) & ".CSV"
For i = 1 To UBound(TabFichiersRépertoiresCSV, 2)
If TabFichiersRépertoiresCSV(1, i) = NomFichierRecherché Then Exit For
Next i
'Fichier trouvé
If i <= UBound(TabFichiersRépertoiresCSV, 2) Then
'récupération du numéro de série (si vide, on prend le num de reconditionnement
NuméroDeSérie = Range("H" & j).Value
If NuméroDeSérie = "" Then NuméroDeSérie = Range("F" & j).Value
DésignationMachine = ExtraireValeurFichierCSV(TabFichiersRépertoiresCSV(2, i), TabFichiersRépertoiresCSV(1, i), 2, 4, ";")
Range("N" & j).Value = NuméroDeSérie & "_" & DésignationMachine
Else
ActiveSheet.Range("N" & j).Value = "PAS DE FICHIER MACHINE TROUVE"
End If
Next j
'copy des information dans les deux autres fichiers Excel
Workbooks.Open Filename:=RépertoireDeTravail & "\equipement\Client-MachineImportIsdxXls.xls", local:=True
Windows(ThisWorkbook.Name).Activate
ActiveSheet.Columns("A:L").Copy
Windows("Client-MachineImportIsdxXls.xls").Activate
ActiveSheet.Columns("A:L").PasteSpecial xlPasteAll
'ActiveSheet.PasteSpecial Paste:=xlPasteValues
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks.Open Filename:=RépertoireDeTravail & "\equipement\Client-Machine.xlsx", local:=True
Windows(ThisWorkbook.Name).Activate
ActiveSheet.Range("A2", "E" & jMax).Copy
Windows("Client-Machine.xlsx").Activate
ActiveSheet.Range("A2", "E" & jMax).PasteSpecial xlPasteAll
ActiveWorkbook.Save
ActiveWorkbook.Close
Windows(ThisWorkbook.Name).Activate
Application.ScreenUpdating = True
MsgBox "MISE A JOUR TERMINE"
End Sub