Public Function WBTrue(WB2 As String) 'fct pour verif existence WB2

   If Len(Dir(WB2)) > 0 Then
      FichierExiste = True
   Else
      FichierExiste = False
   End If
End Function
Sub WB_True() 'verif existence WB2

    Dim WB2 As String

    WB2 = ThisWorkbook.Path & "\Stratifie.xlsx"

    If WBTrue(WB2) = True Then
        Call WB_Open
        'MsgBox "Le fichier existe..."
    Else
        'MsgBox "Le fichier n'existe pas..."
        Call Timer_WBTrue
    End If

End Sub
Sub Timer_WBTrue()
    Dim Retour As Boolean, TimesUp As Boolean
    Dim Mem As String
        Mem = Timer + 60 'Secondes
    Do
    DoEvents
    Retour = FichierExiste(ThisWorkbook.Path & "\Stratifie.xlsx")
    If Timer > Mem Then TimesUp = True
    Loop Until Retour Or TimesUp
    
    Call WB_True
End Sub
Public Function WBOpen(WB2 As String) 'fct pour verif ouverture WB2

    Dim NumeroFichier As Long, NumeroErreur As Long
    
    On Error Resume Next
    NumeroFichier = FreeFile()
    Open WB2 For Input Lock Read As #NumeroFichier
    Close NumeroFichier
    NumeroErreur = Err
    On Error GoTo 0

    Select Case NumeroErreur
    Case 0:    WBOpen = False
    Case 70:   WBOpen = True
    Case Else: Error NumeroErreur
    End Select
End Function
Sub WB_Open() 'verif ouverture WB2

    Dim Verif As Boolean
    Dim WB2 As String
    
    WB2 = ThisWorkbook.Path & "\Stratifie.xlsx"
    
    Verif = WBOpen(WB2)

    If Verif = True Then
        'MsgBox "Le fichier est ouvert..."
        Call Timer_WBOpen
    Else
        Call Trans
        'MsgBox "Le fichier est fermé..."
    End If
End Sub
Sub Timer_WBOpen()
    Dim Retour As Boolean, TimesUp As Boolean
    Dim Mem As String
        Mem = Timer + 60 'Secondes
    Do
    DoEvents
    Retour = WBOpen(ThisWorkbook.Path & "\Stratifie.xlsx")
    If Timer > Mem Then TimesUp = True
    Loop Until Retour Or TimesUp
    
    Call WB_Open

End Sub