Foto's inlezen in Excel

Status
Niet open voor verdere reacties.

Roland Boertjes

Gebruiker
Lid geworden
31 okt 2010
Berichten
21
Hoe kan ik foto's inlezen in een Excel spreadsheet ?

en hoe kan ik ze verwijderen ?

Met VBA uiteraard
 
Dit kun je doen d.m.v. de volgende VBA code...

ophalen(insert) van een plaatje/foto/figuur e.d.
hier bij is path + naam + extensie noodzakelijk (vb. "C:\Foto\Voorbeeld.jpg")
met .Name geef je het plaatje een naam welke nodig is om 'm later te kunnen verwijderen!
Code:
        With ActiveSheet.Pictures.Insert("path + naam + extensie") 'voegt het betreffende plaatje in
            .Top = Range("P4").Top + 9 'geeft aan hoeveel pixels hij vanuit de Range moet komen
            .Left = Range("P4").Left + 19 'zelfde verhaal alleen dan voor Left
            .Width = 36 'geeft de breedte van het plaatje aan
            .Height = 38 'geeft de hoogte van het plaatje aan
            .Name = "naam van het bestand o.i.d." 'geeft het plaatje een naam
        End With

met deze code verwijder je het plaatje weer:

Code:
    On Error Resume Next ' als het plaatje niet bestaat (dus error) resume next
    ActiveSheet.Shapes("naam van het bestand o.i.d.").Delete 'plaatje met deze naam verwijderen
    On Error GoTo 0 'error resetten voor de rest van de procedure

Hoop dat je er wat mee kan!

Gr,
dprod
 
Overigens...
Als je de naam van het plaatje koppelt aan een constante of variabele is dit prettiger werken.

Bijvoorbeeld:

Code:
Sub PlaatjeOphalenEnVerwijderen()

Dim strNaamVanHetPlaatje As String, strPathToFile As String

strPathToFile = "C:\Foto\"
strNaamVanHetPlaatje = "Gekkenwerk.jpg"

'plaatje invoegen...
        With ActiveSheet.Pictures.Insert(strPathToFile & strNaamVanHetPlaatje)
            .Top = Range("P4").Top + 9
            .Left = Range("P4").Left + 19
            .Width = 36
            .Height = 38
            .Name = strNaamVanHetPlaatje
        End With

MsgBox "Het plaatje is toegevoegd, en wordt zo direct weer verwijdert!", vbCritical, "Plaatje Toevoegen/Verwijderen"

'plaatje verwijderen...
    On Error Resume Next
    ActiveSheet.Shapes(strNaamVanHetPlaatje).Delete
    On Error GoTo 0

End Sub

Als je diverse sub's gebruikt maak de sub dan "public"
en declareer de variabelen onder Option Explicit

Voorbeeld:
Code:
Option Explicit

Dim strNaamVanHetPlaatje As String, strPathToFile As String

Public Sub PlaatjeOphalen()

strPathToFile = "C:\Foto\"
strNaamVanHetPlaatje = "Gekkenwerk.jpg"

'plaatje invoegen...
        With ActiveSheet.Pictures.Insert(strPathToFile & strNaamVanHetPlaatje)
            .Top = Range("P4").Top + 9
            .Left = Range("P4").Left + 19
            .Width = 36
            .Height = 38
            .Name = strNaamVanHetPlaatje
        End With

MsgBox "Het plaatje is toegevoegd", vbCritical, "Plaatje Toevoegen"

End Sub

Public Sub EnWeerVerwijderen()

'plaatje verwijderen...
    On Error Resume Next
    ActiveSheet.Shapes(strNaamVanHetPlaatje).Delete
    On Error GoTo 0

MsgBox "Het plaatje is verwijdert", vbCritical, "Plaatje Verwijderen"

End Sub

Gr,
dprod
 
Laatst bewerkt:
Dit kun je doen d.m.v. de volgende VBA code...

ophalen(insert) van een plaatje/foto/figuur e.d.
hier bij is path + naam + extensie noodzakelijk (vb. "C:\Foto\Voorbeeld.jpg")
met .Name geef je het plaatje een naam welke nodig is om 'm later te kunnen verwijderen!
Code:
        With ActiveSheet.Pictures.Insert("path + naam + extensie") 'voegt het betreffende plaatje in
            .Top = Range("P4").Top + 9 'geeft aan hoeveel pixels hij vanuit de Range moet komen
            .Left = Range("P4").Left + 19 'zelfde verhaal alleen dan voor Left
            .Width = 36 'geeft de breedte van het plaatje aan
            .Height = 38 'geeft de hoogte van het plaatje aan
            .Name = "naam van het bestand o.i.d." 'geeft het plaatje een naam
        End With

met deze code verwijder je het plaatje weer:

Code:
    On Error Resume Next ' als het plaatje niet bestaat (dus error) resume next
    ActiveSheet.Shapes("naam van het bestand o.i.d.").Delete 'plaatje met deze naam verwijderen
    On Error GoTo 0 'error resetten voor de rest van de procedure

Hoop dat je er wat mee kan!

Gr,
dprod
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan