Boucle sur nom de fichier
Bonjour à tous,
Je travaille sur un programme access me permettant de télécharger un fichier excel xlsx enregistré sur internet (adresse http).
Le code de l'import fonctionne, mais j'ai rentré pour cela le nom du fichier en dur dans mon code: 2019_H01_TEST.xlsx
Or, il y a un nouveau fichier chaque semaine, et je souhaiterais donc faire une boucle sur le nom du fichier en fonction de la semaine en cours. Et donc chaque semaine le fichier de la semaine en cours s'enregistre en gardant son nom, à la suite des autres..
Exemple:
- on est en S28 de 2019 donc je veux télécharger le fichier 2019_H28_TEST
- on est en S28 de 2018 donc je veux télécharger le fichier 2018_H28_TEST
Un avis ?
Option Compare Database
Private Declare Function TelechargerFichierURL Lib "urlmon" _
Alias "URLDownloadToFileA" _
(ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long
Private Const ERROR_SUCCESS As Long = 0
Private Const BINDF_GETNEWESTVERSION As Long = &H10
-------------------------------
Public Function TelechargerFichierInternet(SourceUrl As String, FichierLocal As String) As Boolean
TelechargerFichierInternet = TelechargerFichierURL(0&, SourceUrl, FichierLocal, BINDF_GETNEWESTVERSION, 0&) = ERROR_SUCCESS
End Function
-----------------------------------
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
fichier_internet = "http://.../filename:2019_H01_TEST.xlsx/archives:0" '
fichier_local = "C:\Users\...\IMPORTS\TEST.xlsx" '
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
bonjour,
une proposition
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
nf = Format(Date, "yyyy") & "_H" & Format(Application.WorksheetFunction.WeekNum(Date), "00") & "_TEST.xlsx"
fichier_internet = "http://.../filename:" & nf & "/archives:0" '
fichier_local = "C:\Users\...\IMPORTS\" & nf '
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
bonjour,
j'avais zappé le fait que tu étais en access. Tu dois donc trouver l'équivalent de cette fonction en access
essaie ceci
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
oui c'est lié, mais le fichier n'est pas téléchargé ni enregistré..bisarre
il semble que le nf n'est pas reconnu dans l'adresse http
NOK: nf dans l'adresse http
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
fichier_internet = "http://.../filename:" & nf & "/archives:0"
fichier_local = "C:\Users\...\TEST\" & nf
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
OK: adresse http en dur
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
fichier_internet = "http://.../filename:2019_H24_TEST.xlsx/archives:0"
fichier_local = "C:\Users\...\TEST\" & nf
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
est-ce que quelqu'un a une idée pour finir la journée en beauté?
Ma variable nf n'est pas reconnue dans l'appel du fichier sur internet..
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
fichier_internet = "http://.../filename:" & nf & "/archives:0"
alors que ça fonctionne avec ce code en dur:
fichier_internet = "http://.../filename:2019_H27_TEST.xlsx/archives:0"
Bonne soirée !
bonjour
verifie le nom de fichier internet avec ce code
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
fichier_internet = "http://.../filename:" & nf & "/archives:0"
fichier_local = "C:\Users\...\TEST\" & nf
msgbox fichier_internet
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
yes bien vu h2so4! c'est tout bon maintenant j'ai rectifié! merci !
par sécurité il faudrait que je vérifier au préalable si le fameux fichier que je cherche existe en fait.
J'ai trouvé ce bout de code pour une fonction sur excel mais savez-vous l'équivalent sur ACCESS ?
Public Function FichierExiste(fichier_internet As String)
If Len(Dir(fichier_internet)) > 0 Then
FichierExiste = True
Else
FichierExiste = False
End If
End Function
Mais il ne réagit pas et passe direct à "une erreur s'est produite"
Sub ExempleTelechargementInternet()
On Error GoTo ExempleErreur
Dim fichier_internet As String
Dim fichier_local As String
nf = Format(Date, "yyyy") & "_H" & Format(Date, "ww") & "_TEST.xlsx"
fichier_internet = "http://.../filename:" & nf & "/archives:0"
Call FichierExiste(fichier_internet)
fichier_local = "C:\Users\TEST\" & nf
MsgBox fichier_internet
Call TelechargerFichierInternet(fichier_internet, fichier_local)
MsgBox "Le téléchargement a réussi..."
Exit Sub
ExempleErreur:
MsgBox "Une erreur s'est produite..."
End Sub
bonjour,
cette fonction ne permet pas de vérifier l'existence d'un fichier sur internet.
Public Function FichierExiste(fichier_internet As String)
If Len(Dir(fichier_internet)) > 0 Then
FichierExiste = True
Else
FichierExiste = False
End If
End Function
il faudrait vérifier sur ce site s'il n'existerait pas une url qui te permettrait de vérifier si le fichier existe ou pas et interpréter la réponse.
tu peux aussi adapter le message d'erreur.
ExempleErreur:
MsgBox "Une erreur s'est produite..., vérifier si le fichier existe"