Fonction date

Tiestof -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Tiestof
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  3. Tiestof
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Tiestof
     
    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. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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