Excel macro enregistre image

Résolu/Fermé
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - 17 oct. 2011 à 16:56
tchernosplif Messages postés 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 - 18 oct. 2011 à 11:57
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 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
Modifié par tchernosplif le 18/10/2011 à 01:51
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 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
18 oct. 2011 à 09:53
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 600 Date d'inscription dimanche 8 novembre 2009 Statut Membre Dernière intervention 21 juin 2015 244
18 oct. 2011 à 11:57
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