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