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

met VBA afbeelding opzoeken op basis van tekst in cel (dynamisch)

Status
Niet open voor verdere reacties.

macbig

Gebruiker
Lid geworden
29 jan 2006
Berichten
20
Al tijden ben ik bezig om in een excel bestand afbeeldingen in een cel te laden als een waarde in een andere cel verandert.
Uiteindelijk is me dat, met hulp van dit forum, gelukt met indirect lookup.
Excel wordt er echter enorm traag van. Alle tips hierover, zoals het niet verwijzen naar hele kolommen, maar naar specifieke cellen, maken het niet sneller.

Via google kwam ik flink wat informatie tegen over VBA codes waarbij excel zoekt naar afbeeldingen die op de harde schijf staan. Dat heeft flink wat voordelen en zou stukken sneller moeten werken. Ik heb diverse tutorials bekeken en de voorbeeld codes toegepast. Omdat de meeste codes voor Windows zijn en ik op een Mac werk, heb ik de verwijzingen naar de locatie van de afbeeldingen aangepast. Maar helaas; ik krijg het niet werkend.

Ik werk met de laatste versie van Excel en MacOS.

De code die ik als basis heb gebruikt is hier te vinden:
https://exceloffthegrid.com/automatically-change-picture/
Die werkt dus blijkbaar prima voor Windows gebruikers.

Als bijlage een voorbeeldbestand, waarbij ik in B1 de kleur wil invoeren. In C2 moet dan het plaatje worden geladen dat dezelfde naam heeft in een directory met als naam 'Kleuren'. Het is uiteindelijk de bedoeling dat er op meer dan 6 verschillende plekken plaatjes worden geladen.

Ben benieuwd....
 

Bijlagen

Misschien een ander idee:
Bekijk bijlage Voorbeeld kleuren.xlsm

Kies eens RALkleur3009 en RALkleur5002.
Zo kan je dat voor alle kleuren doen.
De RGB codes voor de RAL kleuren zijn wel op het internet te vinden.
 
Hoef je op een MAC een bestand niet op te slaan als .XLSM? In het geplaatste bestand staat iig geen code.

Als aanvulling op de reactie in #2
 

Bijlagen

Laatst bewerkt:
@edmoor: het gaat helaas niet alleen om RALkleuren, maar ook om andere afbeeldingen. Dank voor het meedenken

@VenA: klopt inderdaad. Ik ben dat met dit voorbeeld bestand vergeten, maar ik heb dat met het bestand dat ik aan het bewerken ben wel gedaan.
 
Dit werkt bij mij goed, maar of dat op een Mac ook zo gaat heb ik geen idee van:
Bekijk bijlage Voorbeeld kleuren.xlsm

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "B1" Then
        plaatje = ThisWorkbook.Path & "\Kleuren\" & Target.Value & ".jpg"
        If Dir(plaatje) <> "" Then
            Image1.Picture = LoadPicture(plaatje)
        Else
            Image1.Picture = LoadPicture("")
        End If
    End If
End Sub
 
Laatst bewerkt:
Het is me toch wat te ingewikkeld. Ik heb uiteindelijk de methode genomen om de RGB kleuren in te laten vullen. Ik heb echter geen idee hoe ik dat ook voor een andere cel kan laten werken. Ik heb de code gekopieerd en de celverwijzingen aangepast, maar krijg dan foutmeldingen. Blijkbaar is het van belang dat alles op de juiste plek wordt gekopieerd. Als iemand weet hoe dat moet dan hoor ik het graag.

De code ziet er nu zo uit:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim k As Long
If Target.Address(0, 0) = "O107" Then
Select Case Target.Value
Case "RALkleur1000": k = RGB(201, 187, 136) Case Else: k = xlNone
End Select
Range("O109").Interior.Color = k
End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Ik wil de verwijzing (Address) toevoegen naar O128 en O130 als Range.
Alvast dank.
 
Laatst bewerkt:
Die Case Else hoort niet op die plek.
Wat is er moeilijk aan #5?
 
Laatst bewerkt:
Ik heb de vereenvoudigde code weergegeven; in de werkelijkheid heb ik meer dan 100 regels met de diverse kleuren. Ik neem aan dat de Case Else er daarom staat?

Ik weet niet wat je bedoelt met #5....
Ik heb geprobeerd de code te dupliceren en hem daarmee ook naar een andere cel te laten verwijzen. Ik weet alleen niet welk deel van de code ik dan moet kopiëren en waar vervolgens te plakken.
 
Met #5 wordt bericht nummer 5 hier bedoelt.

Die code is alles wat je nodig hebt voor het gebruik van plaatjes.
 
Dat bestand kan ik alleen openen als 'alleen lezen', is niet compatible met mijn versie van excel. Blijkbaar echt een Mac probleem. Ik denk dat ik mn windows laptop er maar weer eens bij pak....
 
Hoe het in Excel op een Mac moet weet ik niet.
Ik heb nog nooit iets met een Mac gedaan.
Wel weet ik dat VBA op een Mac een stuk beperkter is dan op en Windows systeem.
 
Dat blijkt wel inderdaad. Bedankt voor de hulp.
Ik zal het onderwerp afsluiten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan