Vérifier si un fichier existe
Résolu
cletess
Messages postés
40
Statut
Membre
-
cletess Messages postés 40 Statut Membre -
cletess Messages postés 40 Statut Membre -
Bonjour,
J'ai un document source .xlsx reprenant les noms de toute une série d'autres documents .xlsx en colonne A.
J'ai la macro suivante qui ouvre successivement les fichiers .xlsx pour en extraire les données et les inclure dans le document source.
Cependant, certains noms de fichiers repris dans le document source n'existe pas et j'aimerai que la macro saute les cas concernés et ne traite que les fichiers qui existent réellement dans le répertoire.
Voici, ce que j'ai essayé mais rien ne se passe. Je n'ai pas de messages d'erreur mais la macro ne s'exécute pas. Auriez-vous des indications sur comment contourner ce problème ?
Merci infiniment !
CL
J'ai un document source .xlsx reprenant les noms de toute une série d'autres documents .xlsx en colonne A.
J'ai la macro suivante qui ouvre successivement les fichiers .xlsx pour en extraire les données et les inclure dans le document source.
Cependant, certains noms de fichiers repris dans le document source n'existe pas et j'aimerai que la macro saute les cas concernés et ne traite que les fichiers qui existent réellement dans le répertoire.
Voici, ce que j'ai essayé mais rien ne se passe. Je n'ai pas de messages d'erreur mais la macro ne s'exécute pas. Auriez-vous des indications sur comment contourner ce problème ?
Merci infiniment !
CL
Sub cletess() Dim objFSO As Object Dim objFolder As Object Dim objSubFolder As Object Dim e As Integer Dim test As String Dim wb As Workbook Dim strFile As String Dim strDir As String Dim fdest As Worksheet, fsource As Worksheet Dim dlig As Long Dim sfich As String Dim srow As Range Dim crit(34) As String Dim i As Integer Dim skey, sval, cpath As String cpath = ThisWorkbook.Path & "\" Set fdest = ActiveSheet For e = 1 To 34 crit(e) = fdest.Cells(1, 33 + e) Next e dlig = 2 sfich = fdest.Cells(dlig, 1) test = cpath & sfich & ".xlsx" Do While sfich <> "" If Len(Dir(test)) = 0 Then dlig = dlig + 1 sfich = fdest.Cells(dlig, 1) Else Set wb = Workbooks.Open(cpath & sfich & ".xlsx") Set fsource = wb.Sheets(1) For Each srow In fsource.UsedRange.Rows skey = srow.Cells(1, 2) sval = srow.Cells(1, 3) For i = 1 To 34 If skey = crit(i) Then fdest.Cells(dlig, 33 + i) = sval Exit For End If Next i Next srow wb.Close dlig = dlig + 1 sfich = fdest.Cells(dlig, 1) End If Loop End Sub
A voir également:
- Vérifier si un fichier existe
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
Un fois de plus, merci pour votre aide :)