[VBA] Ouvrir un fichier suivant la date
Résolu
momofabo
Messages postés
4
Statut
Membre
-
momofabo Messages postés 4 Statut Membre -
momofabo Messages postés 4 Statut Membre -
Bonjour,
j'ai besoin d'un morceau de code qui me permettrait d'ouvrir un fichier en fonction de sa date.
Le nom du fichier se présente comme ceci : "Articles manquants pour approche - 2011-11-17.xls"
Je voudrais que la macro ouvre le fichier avec la date la plus récente (ce n'est pas forcément la veille), pour y rechercher une information avec un vlookup.
voilà je n'y arrive pas donc toute aide sera la bienvenue!!!
merci!
P.S. J'utilise la version 2003 de Excel
j'ai besoin d'un morceau de code qui me permettrait d'ouvrir un fichier en fonction de sa date.
Le nom du fichier se présente comme ceci : "Articles manquants pour approche - 2011-11-17.xls"
Je voudrais que la macro ouvre le fichier avec la date la plus récente (ce n'est pas forcément la veille), pour y rechercher une information avec un vlookup.
voilà je n'y arrive pas donc toute aide sera la bienvenue!!!
merci!
P.S. J'utilise la version 2003 de Excel
A voir également:
- [VBA] Ouvrir un fichier suivant la date
- Comment ouvrir un fichier epub ? - Guide
- Comment ouvrir un fichier bin ? - Guide
- Ouvrir un fichier .dat - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier docx ? - Guide
2 réponses
bonjour,
la marche a suivre pour faire ce que tu veux serais (pour moi) la suivante:
- tu récupere le nom de tout les fichiers du dossier
- tu compare chaque nom afin de les trier sachant que "Articles manquants pour approche - 2011-11-17.xls">"Articles manquants pour approche - 2011-11-16.xls" renvoi true
- tu renvoi le nom du fichier le plus grand
- tu ajoute le nom du fichier a l'adresse général a ouvrir
https://warin.developpez.com/access/fichiers/#LI-B-2
sur le lien précédent tu trouvera tout ce qu'il te faut pour ouvrir un fichier
la marche a suivre pour faire ce que tu veux serais (pour moi) la suivante:
- tu récupere le nom de tout les fichiers du dossier
- tu compare chaque nom afin de les trier sachant que "Articles manquants pour approche - 2011-11-17.xls">"Articles manquants pour approche - 2011-11-16.xls" renvoi true
- tu renvoi le nom du fichier le plus grand
- tu ajoute le nom du fichier a l'adresse général a ouvrir
https://warin.developpez.com/access/fichiers/#LI-B-2
sur le lien précédent tu trouvera tout ce qu'il te faut pour ouvrir un fichier
Bonjour!
j'ai réussi avec une autre méthode à faire en sorte d'ouvrir le bon fichier, mais je coince maintenant sur le paramètrage de ma recherchev (j'obtiens une erreur #REF!). Je n'arrive pas à trouver l'erreur dans mon code, donc si qq'un veut bien y jeter un coup d'oeil, merci!
j'ai essayé avec et sans la fonction Indirect sans résultat :(
(Ma cible est en colonne H dans les 2 fichiers, et la valeur à ramener est dans la colonne O)
j'ai réussi avec une autre méthode à faire en sorte d'ouvrir le bon fichier, mais je coince maintenant sur le paramètrage de ma recherchev (j'obtiens une erreur #REF!). Je n'arrive pas à trouver l'erreur dans mon code, donc si qq'un veut bien y jeter un coup d'oeil, merci!
j'ai essayé avec et sans la fonction Indirect sans résultat :(
(Ma cible est en colonne H dans les 2 fichiers, et la valeur à ramener est dans la colonne O)
Sub Macro1 () Dim chemin$, fichier$, Frécent$, x$, y$, z$ fichier = "Articles manquants pour approche - " chemin = "V:\Commun\Appros\Fichier Simplifié" x = Format(Date, "-mm"): y = Format(Date, "-dd"): z = Format(Date, "yyyy") 1 If FileExiste(chemin & "\" & fichier & z & x & y & ".xls") Then Workbooks.Open (chemin & "\" & fichier & z & x & y & ".xls") Else If z = 2000 Then Exit Sub If x = -1 And y = -1 Then z = z - 1: x = -12: y = -31: GoTo 1 End If If y = -1 Then y = -31: x = x + 1: GoTo 1 Else y = y + 1: GoTo 1 End If End If ' Fichier le plus récent : Frécent = fichier & z & x & y & ".xls" Windows("MACRO Fichier Simplifié.xls").Activate Range("P2").Select Selection.Value = "[" & Frécent & "]" & "Feuil1!C8:C15" Range("O2").Select ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-7],INDIRECT(R2C16),8,0)" Range("O2").Select Selection.AutoFill Destination:=Range("O2:O500") Columns("O:O").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Windows(Frécent).Activate ActiveWindow.Close End SubMerci!