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
etc...

Un avis ? merci, à plus tard

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 h2so4

Je crois qu'il ne prend pas "worksheetFunction".. cf image en pj

est-ce lié au fait que je travaille dans ACCESS et non EXCEL peut être?

merci

erreur1

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"
Rechercher des sujets similaires à "boucle nom fichier"