• 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 afbeeldingen via vba

Status
Niet open voor verdere reacties.

linkav

Gebruiker
Lid geworden
13 jun 2007
Berichten
465
Hallo,

Ik heb een Excel-bestand met linken naar foto's op een website. De foto van iedere link zou in kolom B moeten komen mbv een macro en dit in een nieuw werkboek.

De geschreven macro in 'Test voor macro.xlsm' doet zijn verwerking goed en de foto's komen in kolom 'B' te staan in een nieuw bestand. Wordt dit bestand bewaard 'Test na macro.xlsx' en daarna terug geopend zijn de foto's verdwenen.

In bijlage 3 bestanden:
* Test voor macro.xlsm: bevat ook de macro die de verwerking doet.
* Test na macro.xlsx: het bestand na de verwerking en bij het openen daarna
* Result na macro.Jpeg: Printscreen na de verwerking en voor het bewaren

Kan er mij iemand helpen? Heb je nog vragen hoor ik het graag!

Alvast bedankt voor jullie tijd en hulp!

Gr,
Ariane
 

Bijlagen

Wel kijkers, geen antwoorden. De reden lijkt mij logisch: je verwijst naar een webpagina die (voor ons) niet werkt. Ofwel een werkend voorbeeldje maken, ofwel een bestand dat met lokale afbeeldingen werkt. Die dan uiteraard ook graag meesturen :).
 
Dag Octafish,

Dat is juist mijn probleem! In het bestand 'Test voor macro' staan linken naar foto's. Ik neem aan dat jullie deze foto's kunnen zien. Het is de bedoeling dat in een nieuw Excel-bestanden de linken in kolom 'A' komen te staan en de bijbehorende foto's in kolom 'B'.

Probleem: foto's zijn verdwenen als het nieuwe document opgeslagen is en daarna terug geopend wordt.

Vraag: Hoe kan ik ervoor zorgen dat de foto's ingesloten worden in het Excel-bestand?

Alvast bedankt voor de hulp!
 
Het is veel simpeler dan je denkt.
Dit is alles wat je nodig heb:

Code:
Sub M_snb()
   For Each it In Blad1.Hyperlinks
      Blad1.Shapes.AddPicture it.Address, 1, 1, 100, Blad1.Shapes.Count * 110, 100, 100
   Next
End Sub

Een nog leukere variant is deze:

Code:
Sub M_snb()
   For Each it In Blad1.Hyperlinks
     With it.Range.AddComment
        .Text ""
        .Shape.Fill.UserPicture it.Address
     End With
    Next
End Sub
 
Laatst bewerkt:
Ik heb mijn suggesties aangepast.
Beide getest in jouw bestand: het loopt vlekkelings.
Verwijder desnoods eerst alle andere macro's.
 
Laatst bewerkt:
Dag snb,

De foto wordt toegevoegd bij de opmerking van de cel maar het toevoegen van de foto in een cel geeft nog steeds de melding dat het bestand niet gevonden is.

Nog suggesties?

Alvast bedankt!
 

Bijlagen

Zet mijn eerste macro in het bestand in de macromodule van het werkblad.
Verwijder alle andere macro's.
Voer deze ene macro uit.
 
Laatst bewerkt:
Lees svp mijn berichten nauwkeurig en gebruik je oorspronkelijke bestand, zonder comments.
In het bestand mogen dan in totaal maar 4 regels code staan.
 
Laatst bewerkt:
Dag snb,

Kan je het Excel-bestand dat jij aangepast hebt en getest heb niet delen met mij aub?
 
Dag snb,

Super bedankt voor je bijdrage.

Helaas werkt het niet bij mij en krijg ik dezelfde foutmelding
 

Bijlagen

  • 2023-07-18_14-37-26.jpg
    2023-07-18_14-37-26.jpg
    109,9 KB · Weergaven: 13
@ snb,

Zo kunnen jullie nog even doorgaan, niet? Bij mij werkt het evenmin, en dat heeft met de Office-versie te maken.

@ Ariane,

Zonder verder in te gaan op je eigen code (die effectief wat korter zou mogen) krijg je het vermoedelijk wel voor elkaar door
Code:
wsOutput.Pictures.Insert(PictureLoc).Select
te vervangen door
Code:
wsOutput.Shapes.AddPicture PictureLoc, 0, 1, Columns(2).Left, Cells(tmpRowCur, 1).Top, 1, 1
wsOutput.Shapes(wsOutput.Shapes.Count).Select

Mvg,
Molly
 
Maar waarom werken de pictures in de comments dan wel ?

@ Molly
Hoezo Officeversie ? welke werken wel , welke niet ? en waarom ?
 
@ snb,

Nu ga je mij misschien afschieten, want al googelend kwam ik op een site (die ik nu niet meer terugvind, sorry) waar dat zonder verdere verklaring werd gemeld. Ik slik dat niet zomaar, maar als het bij jou wel werkt, en bij mij niet, kunnen ze wel eens gelijk hebben, toch?
Trouwens, in de comments werkt het sowieso, het maakt het mysterie er niet kleiner op.
De manier om het wel aan de praat te krijgen heb ik niet op die site gevonden, die is van mijn eigen hand :d
 
Als eerst de comments van afbeeldingen zijn voorzien, kun je die afbeeldingen vervolgens in het werkblad plaatsen met:

Code:
Sub M_snb()
  For Each it In Blad1.Comments
    it.Visible = True
    it.Shape.CopyPicture
    Blad1.Paste it.Parent.Offset(, 4)
    it.Visible = False
  Next
End Sub
 

Bijlagen

@Molly

Welke Officeversie gebruik jij dan ?
Zelfde vraag voor de TS.
 
@ snb,

Ik heb Office Professional Plus 2019.

Aan je laatste werkwijze had ik eerst ook gedacht, maar of comments wenselijk zijn, daar is nooit sprake van geweest. En ze achteraf weer weghalen, tja...
Daarom gaf ik maar de voorkeur aan een manier die helemaal bij de vraag aansluit.

@ Ariane,

Ondertussen zijn we jou al een paar berichten kwijt, dus kijk bij gelegenheid nog eens naar #14.
 
In Office Prof. 2010 is dit voldoende:
Code:
Sub M_snb()
   For Each it In Blad1.Hyperlinks
      Blad1.Shapes.AddPicture it.Address, 1, 1, 100, Blad1.Shapes.Count * 110, 100, 100
   Next
End Sub
In andere versies:
Code:
Sub M_snb()
   Cells(1, 3).AddComment.Visible = True
   
   For Each it In Blad1.Hyperlinks
     With Comments(1)
        .Shape.Fill.UserPicture it.Address
        .Shape.CopyPicture
         Blad1.Paste it.Parent.Offset(, 4)
         Blad1.Shapes(Blad1.Shapes.Count - 1).Top = 5 + (Blad1.Shapes.Count - 2) * 65
     End With
    Next
    
    Comments(1).Delete
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan