Option Explicit

Public Sub recalcul()
    With Application
    .DisplayStatusBar = False
    .StatusBar = "Traitement en cours..."
    .DisplayAlerts = False
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
    .EnableEvents = False
    End With
    
'Variables
    Dim wbk_stock As Workbook
    Dim wbk_Commande As Workbook
    Dim wbk_OF As Workbook
    Dim fichierStock_Path As String
    Dim fichierCommande_Path As String
    Dim fichierOF_Path As String
    Dim tab_StockFichier() As String
    Dim tab_CommandeFichier() As String
    Dim tab_OFFichier() As String
    Dim i As Integer
    Dim j As Integer
    Dim m As Integer
    Dim derniere_ligne_Commande As Integer
    Dim derniere_ligne_Stock As Integer
    Dim derniere_ligne_OF As Integer
    Dim tab_Com() As String
    Dim tab_OF() As String
    
    
'on nettoie les résultats
    For m = 0 To 11
        With ThisWorkbook
        .Sheets(2).Cells(3, m + 3).ClearContents
        .Sheets(2).Cells(5, m + 3).ClearContents
        .Sheets(2).Cells(6, m + 3).ClearContents
        .Sheets(4).Cells(3, m + 3).ClearContents
        .Sheets(4).Cells(5, m + 3).ClearContents
        .Sheets(4).Cells(6, m + 3).ClearContents
        .Sheets(6).Cells(3, m + 3).ClearContents
        .Sheets(6).Cells(5, m + 3).ClearContents
        .Sheets(6).Cells(6, m + 3).ClearContents
        .Sheets(8).Cells(3, m + 3).ClearContents
        .Sheets(8).Cells(5, m + 3).ClearContents
        .Sheets(8).Cells(6, m + 3).ClearContents
        End With
    Next

'On commence par mettre les mois par rapport a celui d'ojd
    mois_Glissant_Tenons
    
'On  récupère les chemin des fichiers
    With ThisWorkbook
    fichierCommande_Path = .Sheets("Param. syst").Range("C3")
    fichierStock_Path = .Sheets("Param. syst").Range("C2")
    fichierOF_Path = .Sheets("Param. syst").Range("C5")
    End With
    
'ouvrir le Fichier Commande
    Set wbk_Commande = Workbooks.Open(fichierCommande_Path)
    'On récupere les colonnes
    'On met ces données dans un tableau
    
    With wbk_Commande.Sheets("VTS_PIC")
        derniere_ligne_Commande = .Cells(Rows.Count, 1).End(xlUp).Row - 2
        ReDim tab_CommandeFichier(derniere_ligne_Commande, 4)
        
        For j = 0 To derniere_ligne_Commande
            tab_CommandeFichier(j, 0) = .Range("B" & j + 2).Value 
            tab_CommandeFichier(j, 1) = .Range("M" & j + 2).Value 
            tab_CommandeFichier(j, 2) = .Range("AA" & j + 2).Value 
            tab_CommandeFichier(j, 3) = .Range("D" & j + 2).Value 
            tab_CommandeFichier(j, 4) = .Range("A" & j + 2).Value 
       Next
       
    End With
    'on ferme le fichier
    wbk_Commande.Close


'ouvrir le Fichier Stock
    Set wbk_stock = Workbooks.Open(fichierStock_Path)
    'On récupere les colonnes
    'On met ces données dans un tableau
    With wbk_stock.Sheets("STK_PIC")
        derniere_ligne_Stock = .Cells(Rows.Count, 1).End(xlUp).Row - 2
        ReDim tab_StockFichier(derniere_ligne_Stock, 6)
        
        For i = 0 To derniere_ligne_Stock
            tab_StockFichier(i, 0) = .Range("I" & i + 2).Value 
            tab_StockFichier(i, 1) = .Range("T" & i + 2).Value 
            tab_StockFichier(i, 2) = .Range("Z" & i + 2).Value 
            tab_StockFichier(i, 3) = .Range("AA" & i + 2).Value 
            tab_StockFichier(i, 4) = .Range("AB" & i + 2).Value 
            tab_StockFichier(i, 5) = .Range("AC" & i + 2).Value 
            tab_StockFichier(i, 6) = .Range("C" & i + 2).Value 
         Next
         
     End With
    'on ferme le fichier
    wbk_stock.Close


'ouvrir le Fichier OF
    Set wbk_OF = Workbooks.Open(fichierOF_Path)
    'On récupere les colonnes
    'On met ces données dans un tableau1
    With wbk_OF.Sheets("OF_PIC")
        derniere_ligne_OF = .Cells(Rows.Count, 1).End(xlUp).Row - 2
        ReDim tab_OFFichier(derniere_ligne_OF, 5)
        
        For i = 0 To derniere_ligne_OF
            tab_OFFichier(i, 0) = .Range("A" & i + 2).Value 
            tab_OFFichier(i, 1) = .Range("B" & i + 2).Value 
            tab_OFFichier(i, 2) = .Range("E" & i + 2).Value 
            tab_OFFichier(i, 3) = .Range("F" & i + 2).Value
            tab_OFFichier(i, 4) = .Range("L" & i + 2).Value 
            tab_OFFichier(i, 5) = .Range("N" & i + 2).Value 
        Next
        
    End With
    'on ferme le fichier
    wbk_OF.Close
 
'Calcul 
   '... 


    With Application
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
    .DisplayAlerts = True
    .DisplayStatusBar = False
    .EnableEvents = True
    End With
    
    'Message de fin
    MsgBox "Calcul réalisé !"
    
    
End Sub