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

Invoegen plaatjes met macro

Status
Niet open voor verdere reacties.

Danielle22

Gebruiker
Lid geworden
8 mei 2007
Berichten
378
Hallo allemaal,

Ik gebruik een macro om via een hyperlink de afbeelding in te voegen in Excel (zie voorbeeld). Ik heb nu echter een bestand waar erg veel hyperlinks in staan. Ik kopieer en plak nu steeds de volgende code:

Code:
Sub Afbeelding()
Sheets("Blad1").Select
Dim N As Object, ws As Worksheet, l As Double, T As Double
Set ws = ActiveWorkbook.Worksheets("Blad1")
With ws.Range("C2"): l = .Left: T = .Top: End With
Set N = ws.Pictures.Insert(ws.Range("A2").Value)
With N: .Left = l: .Top = T:
End With
End Sub

Deze kijkt in cel A2 welke link het is en plaatst het plaatje in de cel C2. Nu kopieer ik steeds deze code voor elke hyperlink. Dus als ik 100 plaatjes heb dan kopieer ik deze code 100x en pas dan steeds de Celwaardes aan.

Kan dit ook in 1 code en met een range?

Dus als er een hyperlink staat in kolom A1 t/m A150 dat het betreffende plaatje in kolom C komt. Voor een voorbeeld zie ook de bijlage.

In het originele bestand zijn het steeds verschillende hyperlinks/afbeeldingen.

Alvast heel erg bedankt voor de eventuele reacties.

Groetjes,

Danielle

Bekijk bijlage invoeren afbeelding.xlsm
 
Hallo Daniëlle (Muntendammer) :),

In een 'for next' lus?
Code:
Sub Afbeelding()
Sheets("Blad1").Select
 Dim N As Object, ws As Worksheet, l As Double, T As Double
  Set ws = ActiveWorkbook.Worksheets("Blad1")
   For Each cl In ws.Columns(1).SpecialCells(2)
     If Right(cl, 4) = ".jpg" Then
 With cl.Offset(, 2): l = .Left: T = .Top: End With
   Set N = ws.Pictures.Insert(cl.Value)
 With N: .Left = l: .Top = T: End With
   End If
  Next cl
End Sub
 
Hoi Harry,

Heel erg bedankt.

Kan ik deze code ook alleen gebruiken voor een bepaalde range? Dus bijvoorbeeld voor de hyperlinks in de range A1 t/m A 150?

Groetjes,

Danielle
 
Hoi,

Zeker; Maak van ws.columns(1).specialcells(2) → ws.range("A1:A50").specialcells(2)
 
Hoi Harry,

Top heel erg bedankt, dit bespaart mij echt heel veel werk.

Groetjes uit het prachtige Veendam :D:thumb:,
 
Graag gedaan Daniëlle,

Vanuit Zuidbroek de groetjes terug.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan