[VBA] Ouvrir un fichier suivant la date

Résolu
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

2 réponses

  1. vordano Messages postés 1981 Statut Membre 316
     
    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
    0
  2. momofabo Messages postés 4 Statut Membre
     
    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)

    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 Sub 
    Merci!
    0