Importer des images d'un site fournisseur

Bonjour à tous.

J'aide un ami qui a une entreprise et qui utilise les images des catalogues de ses fournisseurs, avec leurs autorisations, pour faire ses devis. Un de ces fournisseurs nous a envoyé un API pour la récupération des images, mais l'utilisation demande trop de développement pour du "one shoot", d'où ma question sur VBA.

Je sèche sur une opération à effectuer... Voilà le problème :

J'ai une liste de nom d'images, qui se trouvent dans un répertoire d'un site Web.
Dans excel, j'ai créé une macro qui me transforme cette liste en lien cliquables. Ça, ça fonctionne.

J'ai crée une autre macro qui se positionne sur la première ligne, active le lien, puis passe à la ligne suivante, etc, etc... En boucle jusqu'à la fin de la liste

Mon problème, c'est qu'à chaque ligne lue, le navigateur s'ouvre (ça, pas grave), et que la fenêtre "enregistrer sous" s'ouvre également et attend que je clique sur "enregistrer" ou que j'appuie sur "entrée" pour que la macro continue.

C'est là que je coince. Comment rendre cette action automatique. J'ai essayé le sendkey, mais sans effet....

Pour info, j'ai 4000 images à récupérer 😱

Merci de votre aide.

Ah oui, j'avais zappé...

La macro (simple, essais sur 5 lignes)

Les lignes sendkeys sont en commentaire car ne fonctionnent pas :

Sub Macro1()
'
' Macro1 Macro
'
ligne = 1
Do Until ligne = 6

Range(Rows(ligne), Columns(1)).Select
Selection.Hyperlinks(ligne).Follow NewWindow:=False, AddHistory:=True
' AppActivate(ProcID)
' SendKeys "~", True
ligne = ligne + 1

Loop
End Sub

et ma liste (verticale, placée en A1):

https://le_site_web/images/nom_du_fichier_1.png

https://le_site_web/images/nom_du_fichier_2.png.....

https://le_site_web/images/nom_du_fichier_n.png

Bonjour Jlm80110 et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment :

  • Ne demandez rien d'illégal ou d'éthiquement discutable (comme par exemple le retrait d'un mot de passe VBA, l'extraction de données d'un site qui ne l'autorise pas, etc).

Cordialement

Re,

Voici un code à essayer, il faudra changer le chemin des images importées "sCheminImg"

Option Explicit

#If VBA7 Then
  Private Declare PtrSafe 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
#Else
  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
#End If

Public Const sCheminImg As String = "P:\Test\"

Sub LancerImport()
  Dim dLig As Long, Lig As Long, lRetVal As Long
  Dim sNomImg As String, sPathFic As String, sURL As String
  Dim Sht As Worksheet
  ' Définir la feuille de travail
  Set Sht = ThisWorkbook.Sheets("NomFeuille")
  ' Dernière ligne remplie de la feuille
  dLig = Sht.Range("A" & Rows.Count).End(xlUp).Row
  ' Pour chaque ligne
  For Lig = 1 To dLig
    ' Chemin initial de l'image = https://le_site_web/images/nom_du_fichier_1.png
    sURL = Sht.Range("A" & Lig).Value
    ' Nom de l'image dans le chemin : https://le_site_web/images/nom_du_fichier_1.png
    sNomImg = Mid(sURL, InStrRev(sURL, "/") + 1)
    ' Chemin de destination complet
    sPathFic = sCheminImg & sNomImg
    lRetVal = URLDownloadToFile(0, sURL, sPathFic, 0, 0)
    ' On peut inscrire un texte si erreur
    If lRetVal <> 0 Then
      Sht.Range("B" & Lig).Value = "Problème téléchargement"
    End If
  Next Lig
End Sub

A+

Merci, le code fonctionne.
J'ai mis du temps à le décortiquer pour comprendre ce qu'il s'y passait, mais la méthode va me servir. Je n'avais jamais utilisé "URLDownloadToFile", et la recherche de cette fonction m'a vite fait comprendre que j'ai plein d'autres fonctions à apprendre.
Donc, sujet résolu.
Merci encore.

Rechercher des sujets similaires à "importer images site fournisseur"