Fonction date

Bonjour,
Je souhaite programmé une macro pour ouvrir automatiquement un document excel, qui est extrait quotidiennement à partir d'un logiciel. le document est toujourd dans le même dossier, le changement au niveau du chemin est juste au niveau du mois et du jour.
Workbooks.Open Filename:= _
G:\JOBS QUOTIDIENS\1 ANNEE *2011*\*avril11*\*06.04*\zbud*06/04/2011*.xlsx

Je voudrais donc remplacé les variable entre * * par la date du jour sous le même format, pour arriver à ouvrir le fichier chaque jour.
Merci

5 réponses

  1. En fait je voulais dire,

    Sur le code suivant, comment remplacer "zbud08042011.xlsx" par zbud('date du jour qui est renseigné dans la cellule a1')
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-3],[zbud08042011.xlsx]testzbud!R3C3:R8000C11,9,FALSE)"
    Range("G3").Select
    Selection.AutoFill Destination:=Range("G3:G2533")
    Range("G3:G2533").Select

    Merci.
    0
    1. Modérateur
      Ah! J'aime pas les formules dans VBA!!! et encore moins les VLOOKUP! Essaye ceci :
      Dim NomClas As String
      Dim ChoixDate As Date 
      ChoixDate = CDate(Range("A1").Value)
      NomClas = "[zbud" & ChoixDate & ".xlsx]"
      ActiveCell.FormulaR1C1 = _ 
      "=VLOOKUP(RC[-3], & NomClas & testzbud!R3C3:R8000C11,9,FALSE)" 
      0
  2. Tou fonctionne bien,
    Sauf que dans mes macro il y a une recherche v, est je n'arrive pas à lui dire de rechercher dans le fichier qui contient la date du jour, j'ai ecrit le code suivant , mais cela marche que pour aujourd'hui, je voudrais donc le programmé pour prendre la date du jour pour le fichier dont il va effectuer sa recherche v. voici le code que j'ai saisi

    Windows("zrem" & Format(Range("a1"), "ddmmyyyy") & ".xlsx").Activate
    Range("H3").Select
    range("g3").FormulaR1C1 = _
    "=VLOOKUP(RC[-5],'[zrem07042011.xlsx]test zrem'!R3C4:R8000C25,21,FALSE)"
    Range("H3").Select
    Selection.AutoFill Destination:=Range("H3:H2533")
    Range("H3:H2533").Select
    End Sub

    Merci pour votre aide.
    0
    1. Modérateur
      salut,
      je voudrais donc le programmé pour prendre la date du jour pour le fichier dont il va effectuer sa recherche v. ===> j'ai rien compris........
      0
  3. Trop cool,
    Merci beucoup!!!
    0
    1. Merci pour votre réponse "pijaku"
      Cela fonctionne correctement.
      Je voudrais savoir par contre si je peux programmer ma macro pour fonctionner que si le fichier n'est pas ouvert, "pour éviter d'exécuter la macro plusieurs fois", Autrement dit si le fichier est déja ouvert msgbox "le fichier est ouvert" si nn executer la Macro.
      Merci
      0
      1. Modérateur
        Suffit d'y ajouter un test :
        Sub ouvre()
        Dim Classeur As Workbook
        Dim chemin As String 
        Dim ChoixDate As Date 
        ChoixDate = CDate(Range("A1").Value) 'A1 à adapter. 
        chemin = "G:\JOBS QUOTIDIENS\1 ANNEE " & Year(ChoixDate) & "\" & Format(ChoixDate, "mmmmyy") & "\" & Format(ChoixDate, "dd.mm") & "\Zbub" & Format(ChoixDate, "dd/mm/yyyy") & ".xlsx" 
        If Dir(chemin) <> "" Then 
            For Each Classeur In Application.Workbooks
                  If Classeur.Path & "\" & Classeur.Name = chemin Then
                      MsgBox "Classeur déjà ouvert"
                      Exit Sub
                  End If
             Next
        Workbooks.Open Filename:=chemin 
        Else 
            MsgBox "Le fichier n'existe pas." 
        End If 
        End Sub
        0
    2. Modérateur
      Salut,
      Je n'ai pas pu tester dans l'état car sous 2003 : 06/04/2011 n'est pas accepté...

      Comme ceci :
      ouvre le fichier correspondant à la date inscrite en A1
      Sub ouvre() 
      Dim chemin As String 
      Dim ChoixDate As Date 
      ChoixDate = CDate(Range("A1").Value) 'A1 à adapter. 
      chemin = "G:\JOBS QUOTIDIENS\1 ANNEE " & Year(ChoixDate) & "\" & Format(ChoixDate, "mmmmyy") & "\" & Format(ChoixDate, "dd.mm") & "\Zbub" & Format(ChoixDate, "dd/mm/yyyy") & ".xlsx" 
      If Dir(chemin) <> "" Then 
          Workbooks.Open Filename:=chemin 
      Else 
          MsgBox "Le fichier n'existe pas." 
      End If 
      End Sub

      test possible :
      Sub tester() 
      Dim test As String 
      Dim ChoixDate As Date 
      ChoixDate = CDate(Range("A1").Value) 
      test = Year(ChoixDate) 
      MsgBox test 
      test = Format(ChoixDate, "mmmmyy") 
      MsgBox test 
      test = Format(ChoixDate, "dd.mm") 
      MsgBox test 
      test = Format(ChoixDate, "dd/mm/yyyy") 
      MsgBox test 
      End Sub

      Franck P
      0