Option Explicit
Sub Recup()
Dim cell As Range
Dim Chemin As String
Dim Ligne As Long
Dim sem As Variant '(valeurs attendues : Nombres ou False, puis Chaine de caractères)
'Utilisation de Application.InputBox(...,...,Type:=2) qui permet de n'obtenir que des chiffres en réponse
sem = Application.InputBox(prompt:='Données de la semaine : sous forme de 2 chiffres', _
Title:='Recherche des données', Type:=1)
'Sortir si choix 'Annuler'
If sem = False Then Exit Sub
'Sortir si valeur non reconnue
If sem < 1 Or sem > 52 Then
MsgBox ('erreur de format')
Exit Sub
End If
'Semaine déjà chargée ?
sem = 'sem ' + Format(sem, '00')
If Range('A5') = sem Then
MsgBox ('Cette semaine a déjà été chargée')
Exit Sub
End If
'Traitement
Application.ScreenUpdating = False
Range('A5').Value = sem
Range('B9:AD24').ClearContents
For Each cell In Range('listevendeur')
Ligne = cell.Row ' mémorise le N° de ligne
If cell <> 0 Then
Chemin = ThisWorkbook.Path & '\' & cell.Value & '.xls' 'attribue le chemin d'accès
If Dir(Chemin) <> '' Then ' vérifie l'existence du classeur
Workbooks.Open Chemin
'Sheets('Feuil1') ci-dessous à adapter...
ActiveWorkbook.Sheets('Feuil1').Range('B67:AB67').Copy Destination:= _
Workbooks('Calcul.xls').Sheets('SAISIE').Range('B' & Ligne & ':AB' & Ligne)
Application.CutCopyMode = False
ActiveWorkbook.Close False
End If
End If
Next
Workbooks('Calcul.xls').Activate
Sheets('SAISIE').Activate
Range('B9').Select
Application.ScreenUpdating = True
End Sub