• 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 code) voor plaatsen foto vanuit een link

Status
Niet open voor verdere reacties.

Richard.H

Gebruiker
Lid geworden
22 jun 2024
Berichten
40
Sinds enige tijd werkt de functie IMAGE of AFBEELDING niet meer, hij laat het plaatje niet meer zien en komt met de melding:
#NAAM?

dit is de formule die ik gebruik:

=IMAGE(INDEX('Serie Info'!A2:P142;VERGELIJKEN(Serie!$F$5;'Serie Info'!$A$2:$A$142;0);VERGELIJKEN('Serie Info'!$C$1;'Serie Info'!$A$1:$N$1;0)))

Is dit op een andere manier op te lossen, misschien met vba?

dit zou de link zijn waar hij de foto vandaan moet halen:


(Ik gebruik excel 2021)

 
Laatst bewerkt:
Werkt in O365 gewoon via IMAGE. Je werkt in 1 formule met verschillende talen.

Als je in de Engelse versie werkt, moet je ook MATCH gebruiken ipv VERGELIJKEN
 
dat image heeft excel zelf aangepast waarschijnlijk na een update. er stond afbeelding. ik werk in het nederlands.

zeker weer een truukje van MS om je naar O365 te krijgen.....
 
Dan aanpassen naar AFBEELDING
 
zo dom ben ik nu ook weer niet.....
dat had ik ook al geprobeerd, geeft het zelfde effect.
IMAGE en AFBEELDING verschijnen ook niet in de lijst met formules als je begin te typen..... waarschijnlijk zijn ze eruit gesloopt om je naar O365 te krijgen.
 

IMAGE function availability​


IMAGE is a new function, which is currently available only to Microsoft 365 users for Windows, Mac and Android as well as in Excel for the web.

Dan vraag ik mij af hoe jij deze functie vroeger al hebt kunnen gebruiken.
Of is het soms een UDF met de naam Image?
 
Zoals ik al eerder schreef werkt het tot nu toe wel om daar een afbeelding te krijgen op deze manier. Maar na een update dus niet meer.

Misschien kan het met vba?
Ik heb geen zin een duur 0365 abonnement te nemen hiervoor....
 
Hoe staan deze instellingen bij jou? (zie plaatje) Indien deze op Disable All staan ligt daar wellicht het probleem
 

Bijlagen

  • LinkedDataTypes.JPG
    LinkedDataTypes.JPG
    90,6 KB · Weergaven: 8
deze instelling staat zoals door jou aangegeven...
het lijkt mij echt in de ontbrekende formule te zitten welke in mijn versie niet meer werkt.
 
Blijkbaar niet (meer) in Office 2021, met vba hierbij een aanzetje:
Code:
Sub aanzetje()
pic = "https://artworks.thetvdb.com/banners/series/269641/posters/5f7f3d8e05487.jpg"

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
    With Afbeelding
        .Top = Rows(2).Top
        .Left = Columns(4).Left
        ' etc.
    End With
End Sub
 
Dit is wat ik heb tot nu toe:

Private Sub Plaatje()

pic = Sheets("Filter").Range("C4")

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
With Afbeelding
.Top = Rows(5).Top
.Left = Columns(2).Left
.Height = Application.CentimetersToPoints(10)
.Width = Application.CentimetersToPoints(5)

End With
End Sub


Dit werkt.

Alleen zou het plaatje moeten veranderen als de inhoud van cel C4 veranderd.
 
gevonden!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

' The variable KeyCells contains the cells that will
' cause an alert when they are changed.
Set KeyCells = Sheets("Filter").Range("C4")


pic = Sheets("Filter").Range("C4")

Set Afbeelding = ActiveSheet.Pictures.Insert(pic)
With Afbeelding
.Top = Rows(5).Top
.Left = Columns(2).Left
.Height = Application.CentimetersToPoints(10)
.Width = Application.CentimetersToPoints(5)

End With

End Sub


Misschien weet iemand een betere code of wat aanmerkingen wat te veranderen?
 
Wellicht zo:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Address(0, 0)
        Case "C4":  Plaatje Target
    End Select
End Sub

Sub Plaatje(Cel As Range)
    Set Afbeelding = ActiveSheet.Pictures.Insert(Cel)
    With Afbeelding
        .Top = Rows(Cel.Row + 1).Top
        .Left = Columns(2).Left
        .Height = Application.CentimetersToPoints(10)
        .Width = Application.CentimetersToPoints(5)
    End With
End Sub
 
Laatst bewerkt:
Er zijn meer wegen die naar Rome leiden.....

Dit soort dingen ga ik altijd ff verder uitpluizen om daar wat van de leren.
 
Daar is het voor bedoeld.
Als je er vragen over hebt dan laat het maar weten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan