Como posso exibir um URL como uma imagem em uma célula do Excel?

6

Alguém pode me explicar como transformar um link da web (URL) em uma imagem.

Exemplo de imagem (o URL é http://cache.lego.com/media/bricks/5/1/4667591.jpg )

O que estou tentando fazer é criar uma lista de peças que eu baixei para exibir a imagem em vez do link da Web acima.

O que eu tenho em J2 a J1903 é:

http://cache.lego.com/media/bricks/5/1/4667591.jpg
http://cache.lego.com/media/bricks/5/1/4667521.jpg
...

O que eu gostaria de fazer é obter o Excel para transformar todas essas imagens (10903 delas) nas imagens (tamanho da célula 81x81).

Alguém por favor pode explicar passo a passo como posso fazer isso?

    
por Dave Gray 15.07.2015 / 12:51

2 respostas

6

Se você tiver um conjunto de links na coluna J , como:

evocêexecutaessamacrocurtadoVBA:

SubInstallPictures()DimiAsLong,vAsStringFori=2To1903v=Cells(i,"J").Value
        If v = "" Then Exit Sub
        With ActiveSheet.Pictures
            .Insert (v)
        End With
    Next i
End Sub

cada um dos links será aberto e a Imagem associada será colocada na planilha.

As imagens devem ser adequadamente dimensionadas e posicionadas.

EDIT # 1:

As macros são muito fáceis de instalar e usar:

  1. ALT-F11 exibe a janela do VBE
  2. ALT-I ALT-M abre um novo módulo
  3. cole o material e feche a janela do VBE

Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como .xlsm em vez de .xlsx

Pararemoveramacro:

  1. abrirajaneladoVBEcomoacima
  2. limpeocódigo
  3. fecheajaneladoVBE

ParausaramacrodoExcel:

  1. ALT-F8
  2. Selecioneamacro
  3. ToqueemEXECUTAR

Parasabermaissobremacrosemgeral,consulte:

link

e

link

As macros devem estar ativadas para que isso funcione!

EDIT # 2:

Para evitar erros de recuperação, use esta versão:

Sub InstallPictures()
    Dim i As Long, v As String
    On Error Resume Next
        For i = 2 To 1903
            v = Cells(i, "J").Value
            If v = "" Then Exit Sub
            With ActiveSheet.Pictures
                .Insert (v)
            End With
        Next i
    On Error GoTo 0
End Sub
    
por 15.07.2015 / 14:24
1

Este funciona muito melhor, pois a imagem acaba ao lado da célula a que pertence.

Option Explicit
Dim rng As Range
Dim cell As Range
Dim Filename As String

Sub URLPictureInsert()
    Dim theShape As Shape
    Dim xRg As Range
    Dim xCol As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    Set rng = ActiveSheet.Range("C1:C3000")   ' <---- ADJUST THIS
    For Each cell In rng
        Filename = cell
        If InStr(UCase(Filename), "JPG") > 0 Then   '<--- ONLY USES JPG'S
            ActiveSheet.Pictures.Insert(Filename).Select
            Set theShape = Selection.ShapeRange.Item(1)
            If theShape Is Nothing Then GoTo isnill
            xCol = cell.Column + 1
            Set xRg = Cells(cell.Row, xCol)
            With theShape
                .LockAspectRatio = msoFalse
                .Width = 100
                .Height = 100
                .Top = xRg.Top + (xRg.Height - .Height) / 2
                .Left = xRg.Left + (xRg.Width - .Width) / 2
            End With
isnill:
            Set theShape = Nothing
            Range("A2").Select
        End If
    Next
    Application.ScreenUpdating = True

    Debug.Print "Done " & Now

End Sub
    
por 13.06.2018 / 19:00