Excel macro enregistre image

Résolu
tchernosplif Messages postés 714 Statut Membre -  
tchernosplif Messages postés 714 Statut Membre -
Bonjour,

J'ai une liste d'adresses d'images hébergées sur internet dans un classeur Excel.
en face de chaque adresse, j'ai un chemin pour télécharger l'image.

Exemple:

http://www.totalreunion.fr/os/mainpicture/NT0002F4EA.jpg => C:\total.jpg
http://www.e-dico.fr/blog/images/tous-les-logos-renault.jpg => C:\renault.jpg
....

Savez vous s'il est possible d'utiliser excel comme un gestionnaire de téléchargement via une macro ?

-telecharge l'image en enregistrant au chemin indiqué et passe à la suivante.

Merci pour votre aide.

A voir également:

2 réponses

tchernosplif Messages postés 714 Statut Membre 248
 
Option Explicit

Private Declare Function URLDownloadToFile 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 Sub CommandButton1_Click()
Dim Cible As String
Call DownloadFilefromWeb
End Sub


Sub DownloadFilefromWeb()

'la premiere image est en Y3
Range("Y3").Select

Dim x As Integer

'Boucle nombres de pages -1 (cellule I5)
For x = 1 To 10

Dim strSavePath As String
Dim URL As String, ext As String
Dim buf, ret As Long
URL = ActiveCell.Value
buf = Split(URL, ".")
ext = buf(UBound(buf))

ActiveCell.Offset(0, 1).Select

strSavePath = ActiveCell.Value
ret = URLDownloadToFile(0, URL, strSavePath, 0, 0)

ActiveCell.Offset(1, -1).Select


Next x


End Sub
0
gbinforme Messages postés 15481 Date d'inscription   Statut Contributeur Dernière intervention   4 730
 
bonjour tchernosplif,

C'est parfait, tu as fait la demande et la réponse !

Si je peux me permettre, comme je n'aime pas écrire du code inutile, je te suggère de simplifier ainsi ta procédure, avec contrôle du bon déroulement :

Sub DownloadFilefromWeb()
Dim x As Integer
Dim ret As Long
'la premiere image est en Y3
With Range("Y3")
'Boucle nombres de pages -1 (cellule I5)
For x = 0 To [I5].Value - 1
    ret = URLDownloadToFile(0, .Offset(x, 0).Value, .Offset(x, 1).Value, 0, 0)
    If ret <> 0 Then MsgBox "Fichier erroné " & .Offset(x, 1).Value
Next x
End With
End Sub
0
tchernosplif Messages postés 714 Statut Membre 248
 
Bonjour,

Merci pour ta réponse, je vais simplifier la procédure comme tu le suggères.

Je réalise que j'ai oublié d'enlever ce commentaire
'Boucle nombres de pages -1 (cellule I5)
ça pourra toujours servir à ceux qui liront ton post ^^

Je ne vais pas contrôler le bon déroulement et utiliser de MsgBox, car cette macro s'inscrit elle même dans une boucle, mais merci quand même.

@+
0