• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Afbeelding in cel

Status
Niet open voor verdere reacties.

martindeboer1988

Gebruiker
Lid geworden
5 nov 2016
Berichten
93
Beste forumleden,

Ik probeer in Excel op basis van een celwaarde een externe afbeelding in te laden.
Elke keer als de cel wijzigt moet de afbeelding ook wijzigen.
Zelf kom ik helaas niet verder als onderstaand.

Code:
Sub test()
'
' test Macro
'

'
    ActiveSheet.Pictures.Insert("http://fz-qwe.office.intern/foto/500512.jpg"). _
        Select
End Sub
 
Met in A1 de naam van de foto, in dit geval dus 500512:
Code:
Sub test()
    Dim pct As String
    pct = "http://fz-qwe.office.intern/foto/" & Range("A1") & ".jpg"
    ActiveSheet.Pictures.Insert(pct).Select
End Sub

In plaats van de naam test() in een Module zou je dan de code achter het werkblad moeten plaatsen zoals hier:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        Dim pct As String
        pct = "http://fz-qwe.office.intern/foto/" & Range("A1") & ".jpg"
        ActiveSheet.Pictures.Insert(pct).Select
    End If
End Sub
 
Laatst bewerkt:
De code werkt alleen heb ik nog twee issues hiermee...

- Kan ik ook bepalen waar de afbeelding verschijnt ?
- wanneer ik cel A1 leeg maak krijg ik een run time error 1004 "unable to get the insert property of the pictures class"
 
- Uiteraard krijg je een foutmelding als de cel leeg is, dus daar moet je op controleren.
- Een picture is een shape object met z'n eigen methoden en attributen. Daar kan je mee spelen om het plaatje de gewenste grootte te geven en op de gewenste plek te zetten.

Beide zijn hier in verwerkt:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim pct As String

    If Target.Address = "$A$1" And Target.Value <> "" Then
        pct = "http://fz-qwe.office.intern/foto/" & Range("A1") & ".jpg"
        With ActiveSheet.Pictures.Insert(pct)
            With .ShapeRange
                .LockAspectRatio = msoTrue
                .Width = 75
                .Height = 100
            End With
            .Left = 100
            .Top = 100
            .Placement = 1
            .PrintObject = True
        End With
    End If
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan