Macro recherche fichiers
Résolu
happy4u
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
-
happy4u Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
happy4u Messages postés 39 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Etant novice en vba je sollicite votre aide.
j'ai fait une macro qui permest à aprtir de deux workbooks ("Stress_CA_06012017.xls" ; "Global_Stress_CACIB_REG_06012017") les deux workbooks se trouvent dans le même dossier) et copier certains éléments vers un autre workbook. J'ai réussi à faire un code sauf que à chaque fois je reçois des nouveaux fichiers, cependant Le nom des fichiers évolue chaque jour (il comporte la date...forme NOM_DATE.XLS) .
J'aimerai bien savoir s'il y a une méthode pour ajuster mon code pour que à chaque fois il cherche les deux récents fichiers . (J'ai essayé de faire un petit code en commentaire mais ça a pas marché)
https://www.cjoint.com/c/GAtop6mwMvH
Fichiers sources:
http://www.cjoint.com/c/GAto6DfXPdH
http://www.cjoint.com/c/GAto7bROUgH
Merci de votre aide
Etant novice en vba je sollicite votre aide.
j'ai fait une macro qui permest à aprtir de deux workbooks ("Stress_CA_06012017.xls" ; "Global_Stress_CACIB_REG_06012017") les deux workbooks se trouvent dans le même dossier) et copier certains éléments vers un autre workbook. J'ai réussi à faire un code sauf que à chaque fois je reçois des nouveaux fichiers, cependant Le nom des fichiers évolue chaque jour (il comporte la date...forme NOM_DATE.XLS) .
J'aimerai bien savoir s'il y a une méthode pour ajuster mon code pour que à chaque fois il cherche les deux récents fichiers . (J'ai essayé de faire un petit code en commentaire mais ça a pas marché)
https://www.cjoint.com/c/GAtop6mwMvH
Fichiers sources:
http://www.cjoint.com/c/GAto6DfXPdH
http://www.cjoint.com/c/GAto7bROUgH
Merci de votre aide
A voir également:
- Vba rechercher un fichier dans un dossier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Dossier appdata - Guide
2 réponses
Bonjour,
Pour trouver le fichier le plus récent :
Pour trouver le fichier le plus récent :
Option Explicit Sub FichierLePlusRécent() Dim rep As String 'Répertoire Dim fic As String 'Fichier Dim daR As Date 'Date fichier récent Dim nom As String 'Nom fichier récent rep = "N:\Projets02\RFC2\B- Groupe CA\DEV\" & _ "Historical_Hypothetical_Stress\" fic = "Global_Stress_CACIB_REG_*.xls" daR = 0 nom = "" fic = Dir(rep & fic) Do While fic <> "" If daR < FileDateTime(rep & fic) Then 'mémoriser le nom du fichier le plus récent daR = FileDateTime(rep & fic) nom = fic End If fic = Dir Loop If nom <> "" Then MsgBox nom End If End Sub
happy4u
Messages postés
39
Date d'inscription
Statut
Membre
Dernière intervention
Merci Patrice
Bonjour,
Une solution serait de stocker le nom des fichiers déjà reçus dans une autre feuille. Et avec une fonction comme celle ci-dessous, tu saurais quels sont les fichiers déjà importés.
Bon courage.
Une solution serait de stocker le nom des fichiers déjà reçus dans une autre feuille. Et avec une fonction comme celle ci-dessous, tu saurais quels sont les fichiers déjà importés.
Bon courage.
Private Sub ImporterFichiers() strNomFichier = Dir(strRepertoireFichiers & "*.xlsx", vbNormal) 'Pour chaque fichier xlsm While strNomFichier <> "" 'On vérifie si on ne l'a pas déjà importé If VerifierSiDejaImporte(strNomFichier) = False Then 'On traite le fichier et on enregistre qu'on la traité Call AjouterFichierAListeDesFichiersDejaImportes(strNomFichier) End If WEnd End Sub Private Function VerifierSiDejaImporte(ByVal pin_strNomFichierAVerifier As String) Dim i As Integer Dim blnTrouve As Boolean Dim strNomFichierTraite As String 'Cette fonction recherche dans la feuille 2 de classeur Excel, si le fichier est déjà présent blnTrouve = False i = 2 'On commence à 2 car la 1ère ligne contient le titre de colonne Do 'Dans la Worksheet n°2, colonne A, il y a les noms des fichiers strNomFichierTraite = ThisWorkbook.Worksheets(2).Range("A" & CInt(i)).Value 'Si le nom de fichier correspond, on l'a trouvé ! If strNomFichierTraite = pin_strNomFichierAVerifier Then blnTrouve = True End If i = i + 1 Loop While strNomFichierTraite <> "" And blnTrouve = False VerifierSiDejaImporte = blnTrouve End Function Private Sub AjouterFichierAListeDesFichiersDejaImportes(pin_strNomFichier As String) Dim i As Integer Dim strNomFichierTraite As String 'Ici on va chercher la prochaine cellule vide dans la liste des fichiers traités i = 2 Do strNomFichierTraite = ThisWorkbook.Worksheets(2).Range("A" & CInt(i)).Value If strNomFichierTraite <> "" Then i = i + 1 End If Loop While strNomFichierTraite <> "" And strNomFichierTraite <> pin_strNomFichier 'i contient le numéro de la prochaine ligne libre, on ajoute le nom du fichier ThisWorkbook.Worksheets(2).Range("A" & CInt(i)).Value = pin_strNomFichier End Sub