• 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 vermeld als adres op schijf tonen in Excel

Status
Niet open voor verdere reacties.

corel072

Gebruiker
Lid geworden
27 jun 2012
Berichten
20
Ik heb een hele rits afbeeldingen staan in Excel en wil graag dat deze getoond
worden in de cel waar nu het adres als link naar een map op de schijf staan.

Dus in de cel staat c:\images\1.jpg als tekst en ik zou graag dat het plaatje te zien is.

Bedankt alvast.
 
Excel is geen browser maar een spreadsheet-applicatie,
met andere woorden: Excel is niet opgevoed met het idee dat hij in plaats van een adres een plaatje moet tonen.

Browsers daarentegen.....
 
Ik snap dat excel geen browser is maar plaatjes worden wel weergegeven.

Je kunt wel omgekeerd een image invoegen die op je schijf staat en deze wordt
dan gewoon weergegeven. Nu heb ik het pad al in de cel staan dan zou er toch
een optie moeten zijn dat excel ipv het pad, het plaatje laat zien.
 
Inderdaad, de essentie is dat je het plaatje moet invoegen in Excel
en dat het mechanisme van "ik noem een adres en het plaatje komt automatisch naar voren" dus niet werkt.
Dat werkt in een browser wel zo, maar dat heeft weer van alles te maken met 'http'.
 
Deze in een ver verleden eens gemaakt
Code:
Sub Insert_Pict1()
    Dim lRow As Long, lLoop As Long
    Dim lTop As Long
    Dim sShape As Shape
     Dim myarray As Variant
     myarray = Range("G10", Range("G65536").End(xlUp)).Value' G wijzigen in kolom waar adressen staan, cijfer 10 in 1ste rij adressen
     myarray = Application.WorksheetFunction.Transpose(myarray)
    ActiveSheet.Protect False, False, False, False, False
GetPict:
    If Not IsArray(myarray) Then
        MsgBox "Geen bestanden geselecteerd."
        Exit Sub
    End If
    On Error Resume Next
    lRow = 10'wijzigen in 1ste rij adressen
    For lLoop = LBound(myarray) To UBound(myarray)
        lTop = Cells(lRow, "G").Top + 8' wijzig G in kolomletter adressen
        Set sShape = ActiveSheet.Shapes.AddPicture(myarray(lLoop), msoFalse, msoCTrue, Cells(1, 6).Left + 9, lTop, 80, 60)'wijzig bij cells cijfer 6 in kolomcijfer van adressen
        lRow = lRow + 1
Next lLoop
End Sub
 
Nog allen bedankt voor de reacties, ik ben er nog niet veel mee verder gekomen.
Zoals hierboven aangegeven staat dat Excel geen browser is, toch is het vreemd
dat je niet een plaatje te zien krijgt als je het pad naar het plaatje gebruikt.

Ik heb het helaas nog niet gevonden, als iemand nog een suggestie heeft?
 
Al eens geprobeerd mijn macro aan te passen aan jouw situatie ?
Anders zal je toch duidelijker moeent zijn over de opzet van jouw werkblad, of nog beter post eens een voorbeeldbestandje.
 
Ik kan het niet simpeler uitleggen dan dat ik in cel A1 een link heb staan: C:\image\1.jpg
en dan wil ik kolom B1 het plaatje zien.
 
Code:
Sub Insert_Pict1()
    Set sShape = ActiveSheet.Shapes.AddPicture(Range("A1"), msoFalse, msoCTrue, Cells(1, 2).Left + 9, Cells(1, 2).Top + 8, 80, 60)
End Sub
 
De laatste code doet het inderdaad, helemaal goed!

Je hebt hem gemaakt voor cal A1, als ik een range wil maken doe ik dat met een dubbele punt?

"A1:A100"

of moet daar nog .select achter? Ik weet het even niet.

Voor de rest helemaal goed werkend, als ik de range nog kan wijzigen is dit opgelost.
 
Zoals ik al vroeg, heb je mijn macro al eens aangepast aan jouw situatie?
Code:
Sub Insert_Pict1()
    Dim lRow As Long, lLoop As Long
    Dim sShape As Shape, myarray As Variant
    myarray = WorksheetFunction.Transpose(Range("A1", Range("A" & Rows.Count).End(xlUp)).Value)
    If Not IsArray(myarray) Then
        MsgBox "Geen bestanden geselecteerd."
        Exit Sub
    End If
    On Error Resume Next
    lRow = 1
    For lLoop = LBound(myarray) To UBound(myarray)
        Set sShape = ActiveSheet.Shapes.AddPicture(myarray(lLoop), msoFalse, msoCTrue, _
            Cells(1, 2).Left + 9, Cells(lRow, 2).Top + 8, 80, 60)
        lRow = lRow + 1
    Next lLoop
End Sub
 
Ik ben helemaal goed geholpen zo, erg bedankt.

Ik heb inderdaad Warme bakkertje zijn code niet goed neergezet, de wijzigingen heb ik verkeerd gedaan waardoor
het niet werkte. Nu werkt het helemaal goed en heb ik ook wat aanpassingen kunnen doen m.b.t. de plek waar
het plaatje komt en hoe groot.

Nogmaals bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan