Option Explicit
Sub CollectRatio()
Dim WorkbookMaster As Workbook, WorkbookSlave As String
Dim Ratio, KeyValue, Table
Dim i As Integer, LastRowTab As Integer, Index As Integer
Set WorkbookMaster = ActiveWorkbook
Set Ratio = WorkbookMaster.Sheets("Tableau")
WorkbookSlave = Dir(ActiveWorkbook.Path & "\KV*.xls")
Do While WorkbookSlave <> ""
Set KeyValue = Workbooks.Open(ActiveWorkbook.Path & "\" & WorkbookSlave)
Set Table = KeyValue.Sheets("Tableau")
LastRowTab = Range("A6").End(xlDown).Row 'Dernière ligne de la base de données
TabTotal = Range("A6:V" & LastRowTab) 'Mise en place des valeurs dans le tableau
For i = LBound(TabTotal) To UBound(TabTotal)
If Len(TabTotal(i, 20)) <> 0 And TabTotal(i, 22) = "1" Then
MsgBox TabTotal(i, 20)
Ratio.TabTotal(i, 8).Value = Table.TabTotal(i, 20).Value
End If
Next
Application.DisplayAlerts = False
Workbooks(WorkbookSlave).Close
WorkbookSlave = Dir ' Classeur suivant
Loop
End Sub