Affiche images à partir d'url

Bonjour,

J'essaie depuis un moment d 'établir une macro me permettant d'afficher dans une colonne B automatiquement les images correspondant aux URL de la colonne A. Et après beaucoup de recherches, je ne m'en sors pas.

Je suis en excel 2010.

Je vous remercie par avance pour l'aide apportée.

Philippe

317afficher-images.xlsm (16.67 Ko)

Bonjour,

Tu essaies d'insérer des image à partir du web comme si elle provenaient de ton disque dur... Cela ne peut pas marcher ainsi, il te faut télécharger les images puis les insérer à partir de ton disque dur.

Je trouverais judicieux d'ailleurs de séparer les deux opérations.

Tu télécharges les images, soit tu le fais manuellement... soit si tu veux le faire par VBA, il faut faire appel aux ressources de Windows et utiliser une fonction API permettant de télécharger une image à partir d'un navigateur. Prévoir un dossier d'accueil des images et un renommage à l'enregistrement sur ton disque conforme à l'utilisation ultérieure.

Ensuite l'insertion à partir de ton dossier ne devrait guère poser problème.

Cordialement.

Bonjour,

Merci beaucoup pour ton retour.

Dans le meilleur du possible, Je ne souhaite pas que les images soient téléchargées sur l'ordinateur.

Il y aura des centaines de lignes, et le fichier sera téléchargeable par plusieurs personnes.

Je souhaiterais donc que la macro n'effectue qu'un affichage de l'image liée à l'URL. Dans Google sheet, il y a la formule =image() qui est bien pratique. Mais je n'arrive pas à trouver l'équivalent sur excel (formule ou macro)...

Cordialement

Philippe

Bon ! J'ai encore été victime d'une micro-coupure de réseau qui a volatilisé mon message !

Pas le temps de tous retaper mais en résumé je pense que tu ne peux pas opérer comme si le site distant était une extension de ton ordinateur ou un élément de ton réseau dans lequel tu disposes de droits...

Et je ne vois pas comment tu peux avoir les images sans les télécharger... La récupération de données sur internet, à ma connaissance, est toujours passée et passe toujours par le téléchargement.

Peut-être est-il possible d'utiliser des contrôles webbrowser pour afficher les images à partir de leur site, mais là tu n'insères plus dans une feuille...

Cordialement.

Bonjour à tous,

Effectivement sans télécharger les images, je ne sais pas faire non plus.

En revanche, il est tout à fait possible d'automatiser ça par du code.

Ci-joint une démo : un bouton "Go" qui télécharge les images gif ou jpg indiquées en liens et qui les affiche en gardant leurs proportions par rapport à la hauteur des cellules de la colonne B

Nb1 : le téléchargement ne se fait que si l'image n'existe pas déjà sur le DD (pour un traitement + rapide)

Nb2 : la procédure "Go" peut éventuellement être lancée à l'ouverture du fichier (dans un workbook_open)

Est-ce que ça pourrait convenir?

Pierre

906afficher-images.xlsm (23.05 Ko)

Bonjour Pierre,

Je te remercie grandement pour ton aide, c'est juste parfait!

Dernière petite question : comment adapter ta macro pour que les images se déplacent et se redimensionnent avec les cellules. En gros, certaines lignes seront masquées selon certains critères ... J'ai trouvé cela "xlMoveAndSize" mais je n'ai pas réussi à le placer au bon endroit dans ta macro pour que cela fonctionne.

Si tu as encore un peu de temps pour m'aider ....

Merci beaucoup

Philippe

Bonjour Philippe,

On peut faire assez simplement :

1/ à la fin de ta procédure qui traite tes critères tu lances la procédure d'insertion des images,

2/ et dans la procédure d'insertion des images, il suffit alors de tester la hauteur de la ligne dans la boucle pour insérer uniquement si hauteur>0

For i = 1 To lg
    If .Rows(i).Height > 0 Then
        ' ... ajoute image ... etc ...

Pierre

Bonjour,

je voudrais faire la meme chose mais en mettant la photo dans la cellule qui a l'url et que l'on puisse utilise toute les cellule b2 d6 ...

Bonjour,

je voudrais que affiché chaque image dans chaque cellule.

Comme dans le fichier ci joint

que dois je modifier dans le fichier pour y arrive?

210afficher-images-4.xlsm (228.46 Ko)

Bah, c'est pas dur, il suffit de boucler sur les colonnes, du genre :

Sub go()
Dim Tdata As Variant, Sh As Shape, iPict As IPictureDisp
Dim L As Single, T As Single, W As Single, H As Single
Dim lg As Long, cl As Long, i As Long, j As Long
Dim rep As String, NDF As String

    With Sheets("Feuil1")
        For Each Sh In .Shapes
            If Left(Sh.Name, 2) <> "A" Then Sh.Delete
        Next Sh

        lg = .Cells(Rows.Count, 1).End(xlUp).Row
        cl = .Cells(1, Columns.Count).End(xlToLeft).Column
        Tdata = .Range(.Cells(1, 1), .Cells(lg, cl)).Value

        rep = ThisWorkbook.Path & "\Images\"
        If Not Exist_Rep(rep) Then MkDir rep

        For i = 1 To lg
            For j = 1 To cl
                NDF = Ndf_Img(CStr(Tdata(i, j)))
                If Exist_Fichier(rep & NDF) Then
                    Set iPict = LoadPicture(rep & NDF)
                    With .Cells(i, j)
                        T = .Top + 1
                        H = .Height - 2
                        W = (H / iPict.Height) * iPict.Width
                        L = .Left + (.Width - W) / 2
                    End With
                    .Shapes.AddPicture rep & NDF, True, True, L, T, W, H
                    Set iPict = Nothing
                End If
            Next j
        Next i
    End With
End Sub

Merci

Bonjour,

J'ai un petit probleme , le bouton s'efface et ca ne fonctionne que 1 fois.

Bonjour,

j'ai affiné mon projet, j'ai besoin de voir les photo des colone D et E

Comment je dois modifier pour que cela fonctionne?

Bonjour,

j'ai affiné mon projet, j'ai besoin de voir les photo des colone D et E

Comment je dois modifier pour que cela fonctionne?

Je n'arrive qu'a affiché les photo des 83 lignes, on peut pas faire plus?

Sub go()
Dim Tdata As Variant, Sh As Shape, iPict As IPictureDisp
Dim L As Single, T As Single, W As Single, H As Single
Dim lg As Long, cl As Long, i As Long, j As Long
Dim rep As String, NDF As String

    With Sheets("Feuil1")
        For Each Sh In .Shapes
            If Left(Sh.Name, 1) <> "B" Then Sh.Delete
        Next Sh

        rep = ThisWorkbook.Path & "\Images\"
        If Not Exist_Rep(rep) Then MkDir rep

        For j = 4 To 5
            lg = .Cells(Rows.Count, j).End(xlUp).Row
            Tdata = .Range(.Cells(1, j), .Cells(lg, j)).Value
            For i = 1 To lg
                NDF = Ndf_Img(CStr(Tdata(i, 1)))
                If Exist_Fichier(rep & NDF) Then
                    Set iPict = LoadPicture(rep & NDF)
                    With .Cells(i, j)
                        T = .Top + 1
                        H = .Height - 2
                        W = (H / iPict.Height) * iPict.Width
                        L = .Left + (.Width - W) / 2
                    End With
                    .Shapes.AddPicture rep & NDF, True, True, L, T, W, H
                    Set iPict = Nothing
                End If
            Next i
        Next j
    End With
End Sub

Merci

Par contre si une adresse est fausse ça fait buguer la macro.

Bonjour,

j'ai des adresse qui font bugger la macro

Voicu un exemple du probleme

Bonjour,

Merci pour votre aide.

c'est adresse :

https://i2.cdscdn.com/pdt2/3/9/4/1/085x085/AUC3389556803394.jpg
https://i2.cdscdn.com/pdt2/7/7/8/1/085x085/GUE0091661463778.jpg
https://i2.cdscdn.com/pdt2/3/9/9/1/085x085/ARI8003705116399.jpg
https://i2.cdscdn.com/pdt2/5/4/0/1/085x085/EYL5011522292540.jpg
https://i2.cdscdn.com/pdt2/0/0/7/1/085x085/JAN3700217380007.jpg
https://i2.cdscdn.com/pdt2/0/7/8/1/085x085/LOR3474636383078.jpg
https://i2.cdscdn.com/pdt2/9/7/1/1/085x085/LOR3600523305971.jpg
https://i2.cdscdn.com/pdt2/6/5/8/1/085x085/NIV4005808804658.jpg
https://i2.cdscdn.com/pdt2/3/9/8/1/085x085/SCH4055744005398.jpg
https://i2.cdscdn.com/pdt2/0/5/3/1/085x085/NIV7432202071053.jpg

Ne fonctionne pas avec la macro, elle la fait bugguer , savez vous pourquoi et avez vous une solution?

Bonjour

avec ces adresse la macro bloque sur " Set iPict = LoadPicture(rep & NDF) " pouvez vousme dire pourquoi? et comment resoudre le probleme .

J'ai vraimment besoin de rsoudre ce probleme rapidement.

Merci d'avance.

Bonjour,

et il possible d'adapté cette macro pour lire des image qui sont sur mon disque dur?

j'ai essayer d'utilise le script telle qu'elle mais il ne fonctionne pas.

Rechercher des sujets similaires à "affiche images partir url"