• 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.

VBA Afbeeldingen invoeren dmv linkjes in juiste cel

Status
Niet open voor verdere reacties.

nvdm1234

Nieuwe gebruiker
Lid geworden
22 jun 2016
Berichten
2
Goedemiddag,

Ik ben bezig met een macro die automatisch afbeeldingen op bepaalde cellen laadt.
Maar ik kom er niet helemaal uit. Ik heb de juiste code om 1 afbeelding in te voegen op een bepaalde plek.
De linkjes staan allemaal in klom A en dan om de 4 rijen staat een link;
A1 / A5 / A9 enz
Nu zou ik graag willen dat hij alle linkjes uitleest en de afbeeldingen invoegt ongeveer op de positie van de cel waar de link uitgehaald wordt.
Dit is mijn code, waar dus een loop in moet en de positie variabel moet worden. Ik heb al enorm veel gegoogled maar ik kom er niet uit.
Code:
Sub Test()
Dim MySht As Worksheet
Dim MyPic As Shape
Dim MyLeft As Single, MyTop As Single

    MyTop = 50
    MyLeft = 50

    MyTop = [C3].Top
    MyLeft = [C3].Left

    MyTop = Cells(Windows(1).ScrollRow, Windows(1).ScrollColumn).Top
    MyLeft = Cells(Windows(1).ScrollRow, Windows(1).ScrollColumn).Left


    Set MySht = ActiveSheet
    Set MyPic = MySht.Shapes.AddPicture(Range("A12"), _
                msoFalse, msoTrue, MyLeft, MyTop, -1, -1)
    '      ^^^  LinkTo    SaveWith                -1 = keep size

    MyPic.Height = 100

End Sub
 
Welkom op het forum.
Met een anoniem voorbeeldbestandje wordt je sneller en beter geholpen.

Desalnietemin, hier een code om mee te beginnen (maar deze is nog veelzijdiger te maken)
Code:
[SIZE=1]Option Explicit

Sub Test()
    Dim lngRow As Long
    Dim strFullPath As String
    For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        strFullPath = Cells(lngRow, 1).Value
        If strFullPath <> vbNullString Then
            ActiveSheet.Shapes.AddPicture strFullPath, True, True, Cells(lngRow, 1).Left + 1, Cells(lngRow, 1).Top + 1, 100, 100
        End If
    Next
End Sub[/SIZE]
 
Of wellicht:

Code:
Sub M_snb()
  sn = Range("A1:A10")

  For j = 1 To 9 Step 4
    With Sheets(1).Cells(j, 1).AddComment.Shape
      .Fill.UserPicture sn(j, 1)
      .Width = 40
      .Height = .Width
      .Visible = True
    End With
  Next
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan