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

Excel database met afbeeldingen

Status
Niet open voor verdere reacties.

jur86

Gebruiker
Lid geworden
21 jul 2010
Berichten
9
Hoi allemaal,

Ik ben momenteel bezig met het opzetten van een Excel (2007) database. Hierin komen alle producten van het bedrijf in te staan met daarbij verschillende specificaties e.d. Ook wil ik de afbeeldingen van de producten hierin opnemen.

Nadat alle data in een Excel sheet is verwerkt wil ik de data op een ander Excel bestand/sheet oproepen. Niet alle data, maar alleen de data die voor een afdeling nodig is. Alles lukt tot zover, behalve afbeeldingen.

Ik heb twee manieren gevonden om te werken met afbeeldingen maar deze doen beide niet helemaal wat ik wil.
- http://www.jkp-ads.com/Articles/ShowPicture00NL.asp (bij printen print Excel de foto niet mee, verder werkt alles wel)
- http://www.newbytes.be/Downloads/InsertPicture.zip

Heeft er iemand tips hoe ik dit wel kan doen of moet ik misschien met een ander programma werken?

Alvast bedankt,

Jurriaan
 
Code:
Sub Insert_Pict1()
    Dim lRow As Long, lLoop As Long
    Dim lTop As Long, sShape As Shape, myarray As Variant
     myarray = Range("G10", Range("G65536").End(xlUp)).Value
     myarray = Application.WorksheetFunction.Transpose(myarray)
    ActiveSheet.Protect False, False, False, False, False
GetPict:
    If Not IsArray(myarray) Then
        Debug.Print "No files selected."
        Exit Sub
    End If
    'Range("G1:G8").Value = Application.WorksheetFunction.Transpose(myarray)
    On Error Resume Next
    lRow = 10
    For lLoop = LBound(myarray) To UBound(myarray)
        lTop = Cells(lRow, "F").Top + 8
        Set sShape = ActiveSheet.Shapes.AddPicture(myarray(lLoop), msoFalse, msoCTrue, Cells(1, 6).Left + 9, lTop, 80, 60)
                            'expression.AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height)
       lRow = lRow + 1
Next lLoop
End Sub
Bovenstaande macro plaatst alle afbeeldingen vanaf rij 10 in kolom F, waarbij het volledige pad naar elke afbeelding in kolom G vanaf rij 10 staat.
 
Laatst bewerkt:
Beste Rudi,

Bedankt voor je snelle antwoord, alleen ben ik niet helemaal thuis in het werken met deze codes.

Ik begrijp dus dat ik een knop kan invoegen en daar deze macro aan kan hangen?
Dan moet ik in kolom G-10 de afbeeldingverwijzing zetten (vb. c:\werkmap\2010\test.jpg)?
Wanneer ik dan op de knop druk haalt hij via de afbeeldingverwijzing de afbeelding op en zet hij die in kolom F-10?

Momenteel doet hij dit namelijk niet, dus ik weet niet of ik het zo goed doe.

Alvast bedankt,

Jurriaan
 
Je moet het wel proberen met enkele foto's, bij 1 foto wordt de macro onderbroken
 
Bedankt voor je snelle feedback, ik ben nu een stuk verder.

Alleen heb ik nog een paar vraagjes. Ik heb het excelbestand hierbij toegevoegd als voorbeeld, misschien dat meer mensen hier iets aan hebben.

In tabblad 1 staat de database met gegevens. Hierover geen vragen.

In tabblad 2 laat ik de informatie uit de database halen. Men vult in K3 de naam in “hond” bijvoorbeeld. Aan de hand hiervan wordt de data opgehaald, de afbeelding dmv een macro op de knop "afbeelding plaatsen". De afbeeldingen staan in dezelfde map als het excelbestand.

Nu heb ik daar twee klein vraagjes over:
1. Kan ik de afbeeldingen ook uit een andere map laten halen?

De code is nu:

Code:
Sub test()
Dim i As Integer
i = 3
Do Until Cells(i, 16).Value = ""
With ActiveSheet.Pictures.Insert( _
    ThisWorkbook.Path & "\" & Cells(i, 16).Value)
    .Top = Cells(i, 2).Top
    .Left = Cells(i, 16).Left
    .Width = (.Width / .Height) * Cells(i, 2).Height
    .Height = Cells(i, 2).Height
End With
i = i + 1
Loop
End Sub

2. Nadat de afbeelding is ingevoegd moet er op de knop "artikel toevoegen" worden gedrukt. Nu kopieerd hij het veld naar links en kan er een tweede artikel worden ingevoerd.

Ik zou graag willen dat ik de afbeelding die dmv van de macro geplaatst is in P3 automatisch gewist wordt. Dit gaat nu niet omdat de afbeelding bij plaatsen iedere keer een ander naam krijgt "afbeeling 1" volgende "afbeelding 2".
Kan ik de bovenstaande macro (vraag 1) instellen dat hij de afbeelding altijd dezelfde naam geeft zodat ik bij de knop "artikel toevoegen" kan aangeven dat hij na het naar links kopieren de afbeelding in P3 wist? En welke coderegel moet ik dan toevoegen aan de knop "artikel toevoegen"?

Alvast bedankt voor de hulp!

Jurriaan


Bekijk bijlage excelvoorbeeld.zip
 
Probeer de bijlage eens uit. Ik heb de knop Afbeelding toevoegen verwijdert, het volstaat nu van in K3 de naam te typen en de afbeelding wordt automatisch ingevoerd.
 

Bijlagen

Beste Rudi,

Echt hartstikke bedankt voor je hulp! Nu werkt het precies zoals ik wilde dat het ging werken.
Ik moet het nu alleen nog verwerken in mijn eigen bestand maar dat gaat hopelijk wel lukken.

Mijn dank is groot :D!

Mvg,

Jurriaan
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan