OVH Cloud OVH Cloud

Récupération de fichier sur internet

6 réponses
Avatar
Free
Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier excel
qui contient cette commnade.

Merci de votre aide.

6 réponses

Avatar
Jacques93
Bonjour Free,

Private Declare Function DoFileDownload Lib "shdocvw" _
(ByVal lpszFile As String) As Long

Private Sub CommandButton1_Click()
Dim sDownload As String
Dim s As String

s = "http://NomDuSite/NomDuFichier"
sDownload = StrConv(s, vbUnicode)
DoFileDownload sDownload
End Sub

Pour ne pas à avoir à valider l'enregistrement du fichier, voir ici :
http://vbnet.mvps.org/index.html?code/internet/dofiledownloadcustom.htm

Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier excel
qui contient cette commnade.

Merci de votre aide.



--
Cordialement,

Jacques.

Avatar
Wallas
Bonjour Free,

Private Declare Function DoFileDownload Lib "shdocvw" _
(ByVal lpszFile As String) As Long

Private Sub CommandButton1_Click()
Dim sDownload As String
Dim s As String

s = "http://NomDuSite/NomDuFichier"
sDownload = StrConv(s, vbUnicode)
DoFileDownload sDownload
End Sub

Pour ne pas à avoir à valider l'enregistrement du fichier, voir ici :
http://vbnet.mvps.org/index.html?code/internet/dofiledownloadcustom.htm


Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier
excel qui contient cette commnade.

Merci de votre aide.




Pas mal mais cela nécessite de gérer un écran d'IE et copie le fichier

sur le bureau au lieu du répertoire ou est positionné le fichier Excel.

Si tu peux completer ou indiquer un site internet avec explications,
nous sommes preneurs.

Merci à toi, Jacques93


Avatar
docm
Bonjour.

Ceci répond-il à ta demande?

Private Sub CommandButton1_Click()

On Error GoTo Erreur

Dim obj As Workbook
AdresseURL "http://langkawi.blog.expedia.fr/files/tarifs_constates_en_aout_05.xls"
Workbooks.Open AdresseURL
Set obj = ActiveWorkbook

c = ThisWorkbook.Path
If Right(c, 1) <> "" Then c = c & ""

obj.SaveCopyAs c & obj.Name
obj.Close
Set obj = Nothing
Exit Sub
Erreur:
MsgBox Error$
End Sub


"Free" a écrit dans le message news:
43231218$0$22129$
Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier excel
qui contient cette commnade.

Merci de votre aide.


Avatar
Jacques93
Bonjour Wallas,

La clé de base de registre :

HKCUSoftwareMicrosoftInternet ExplorerDownload Directory

stocke le répertoire d'enregistrement par défaut (variable
dldata.DownloadTempRegKey)

et la clé :

HKCUSoftwareMicrosoftInternet ExplorerMainNotifyDownloadComplete

correspond à la valeur de la case à cocher 'Fermer cette boite de
dialogue à la fin du téléchargement'


Code du site :
http://vbnet.mvps.org/index.html?code/internet/dofiledownloadcustom.htm

adapté au libellé français des fenêtres :

Private Function DownloadRemoteFile(dldata As FileRegistryDownloadData)
As Boolean

Dim hwndDlg As Long
Dim sDownloadFile As String
Dim sTmpRegHold As String
Dim bRegChanged As Boolean

sTmpRegHold = RegGetDownloadDirectory()

If LCase$(sTmpRegHold) <> LCase$(dldata.DownloadTempRegKey) Then
bRegChanged = RegSetDownloadDirectory(dldata.DownloadTempRegKey)
End If

sDownloadFile = StrConv(dldata.DownloadRemoteFileUrl, vbUnicode)
Call DoFileDownload(sDownloadFile)

Do
hwndDlg = FindWindow("#32770", "Enregistrer sous")
Loop While hwndDlg = 0
SetActiveWindow hwndDlg
SendKeys "{ENTER}" ' Valide la boite enregister sous

If Len(dldata.DownloadDlgTitle) > 0 Then

Do
hwndDlg = FindWindow("#32770", "Téléchargement de fichier")
Loop While hwndDlg = 0

If hwndDlg <> 0 Then
Call SetWindowText(hwndDlg, dldata.DownloadDlgTitle)
End If

End If

Do
Call Sleep(50)
DoEvents
Loop Until IsWindow(hwndDlg) = False

If bRegChanged Then
Call RegSetDownloadDirectory(sTmpRegHold)
End If

DownloadRemoteFile = FileExists(dldata.DownloadLocalFileName)

End Function

Pas mal mais cela nécessite de gérer un écran d'IE et copie le fichier
sur le bureau au lieu du répertoire ou est positionné le fichier Excel.

Si tu peux completer ou indiquer un site internet avec explications,
nous sommes preneurs.

Merci à toi, Jacques93



--
Cordialement,

Jacques.

Avatar
Wallas
Bonjour.

Ceci répond-il à ta demande?

Private Sub CommandButton1_Click()

On Error GoTo Erreur

Dim obj As Workbook
AdresseURL > "http://langkawi.blog.expedia.fr/files/tarifs_constates_en_aout_05.xls"
Workbooks.Open AdresseURL
Set obj = ActiveWorkbook

c = ThisWorkbook.Path
If Right(c, 1) <> "" Then c = c & ""

obj.SaveCopyAs c & obj.Name
obj.Close
Set obj = Nothing
Exit Sub
Erreur:
MsgBox Error$
End Sub


"Free" a écrit dans le message news:
43231218$0$22129$

Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier excel
qui contient cette commnade.

Merci de votre aide.




Merci pour votre aide,


dans un premier temps, j'ai recopié le code en changeant l'URl et cela
ne fonction pas puisque mon fichier à télécharger est un .zip et qu'il
est ouvert par Excel qui ne sait pas quoi en faire.

Je vais essayer de modifier le code pour me rapprocher de mon besoin.

Concernant le code de Jacques93, il me faut pluas de temps pour le
décortiquer et valider qu'il répond à mon attente. Merci aussi

A suivre...


Avatar
Wallas
Bonjour,

Je cherche un moyen de mettre dans un tableau excel un lien hypertexte
(ou un bouton) qui me permette de télécharger un fichier sur internet
(l'adresse internet étant toujours la même, les données du fichier
téléchargé changent toutes les semaines) en n'ayant pas besoin de
valider pour accepter le téléchargement (plutot que l'ouverture du
fichier) et d'enregistrer le fichier dans le répértoire du fichier excel
qui contient cette commnade.

Merci de votre aide.


Pour être plus clair
J'ai un fichier sur internet au format zip qui contient un fichier au
format .csv pour être importer dans Excel.
Pour l'instant, j'execute le lien manuellement, Cela me permet un
téléchargement qui me demande soit l'ouverture (du zip) soit
l'enregistrement du fichier dans un répertoire quelconque, fichier une
fois enregistré que je dois ouvrir pour en extraire le fichier .csv.
Je dois donc quelque part extraire le fichier dans un répertoire. mon
idée est que le répertoire soit le répertoire du fichier ecel dans
lequel se trouver la commande de téléchargement et dans lequel le
fichier csv va être incorporer.
Après je voudrais une importation automatique de ce fichier csv dans mon
tableau.

Je fais en fait un petit tableau excel afin de vérifier les résultats du
loto sur 5 semaines. Plutot que de mettre à jour ma base de données avec
une dizaine de clics chaque mercredi et chaque samedi, je pense et je
souhaiterai automatique cette démarche de mise à jour.
Le controle des réslutats est lui déjà fait.
merci de votre aide.