Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[EXCEL/VBA] Tekst in range vervangen door afbeelding

Pagina: 1
Acties:

  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 17:07
Hallo allemaal,

Hier weer eens een vraag van de n00b bij uitstek op het gebied van VBA: ikke! :)

Momenteel ben ik bezig met een formulier die uiteindelijk een rapportage gaat uitpoepen. Dat werkt tot nu toe prima, maar ik ben bezig om het net wat mooier te krijgen. Een van de dingen die ik daarom wil doen is in kolom A de cellen die een specifieke waarde bevatten, een afbeelding te plaatsen. Die afbeelding wil ik 'iets' buiten de betreffende de cel laten uitsteken (aan de bovenkant).

Ik ben al een tijdje bezig geweest en ik heb een script die deels kan wat ik wil:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub KomtDatPlaatje()
Dim ws As Worksheet, cell As Range
Set ws = ThisWorkbook.Sheets("Rapportage")

Dim fPath, fDir As String

fDir = "C:\Specifieke\Map\Met\Afbeeldingen\"  'de DIR met de afbeeldingen
For Each cell In ws.[A1:A150] 'de range van cellen waar het moet gaan gebeuren
    fPath = fDir & cell.Value
    With ws.Pictures.Insert(fPath)
        With .ShapeRange
            .Width = 23
            .Height = 23
        End With
        .PrintObject = True
        .Top = cell.Top
        .Left = cell.Left
        
    End With

Next
End Sub


Deze code kijkt naar de waarde van de betreffende cel en kijkt of er een corresponderend plaatje is bij de naam. In Kolom A komen naast de specifieke waarden voor plaatjesnamen (bijvoorbeeld Afbeelding1.png en Afbeelding2.png) echter ook lege cellen voor en cellen met complete teksten.
  1. Ik wil nu graag bewerkstelligen dat de code alleen een afbeelding plaatst in de cellen met waarde Afbeelding1.png en Afbeelding2.png en dus cellen met andere inhoud of lege cellen overslaat!
  2. Ik wil dat de afbeelding niet uiterst links en top wordt weergegeven, maar met een kleine inspringing vanaf links en de afbeelding moet een beetje (pixelwerk) uit de cel 'steken'.
Zou iemand me kunnen helpen?

EDIT: Het gaat me vooral om punt 1 :)

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh


  • m-vw
  • Registratie: mei 2013
  • Laatst online: 08:31

m-vw

GEZOCHT: De Kluts

If..... then

Garmin FR245M + HRM-RUN


  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 17:07
Bedankt voor deze toevoeging. Ik heb daarmee gestoeid, maar ik krijg het niet voor elkaar en ik krijg tal van compileerfouten. Ik heb niet eens een idee wáár ik dit neer moet zetten. :( Zoals gezegd, ik ben een n00b op dit gebied. Het leek me verstandiger om de werkende code neer te zetten met een wens (die ik zelf niet voor elkaar krijg).

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh


  • heuveltje
  • Registratie: februari 2000
  • Laatst online: 11:37

heuveltje

KoelkastFilosoof

Grappig, nooit geweten dat je rechtstreeks afbeeldingen kan invoeren, weer wat geleerd :)


https://www.excel-easy.com/vba/if-then-statement.html

je wilt iets van if cell.value = "plaajte" then .. doen
Dit doe je op het eerste punt nadat je de cel bepaald hebt,

You cant build a better world for people.
Only people can build a better world for people.
Otherwise its just a fancy cage. T. Pratchett


  • m-vw
  • Registratie: mei 2013
  • Laatst online: 08:31

m-vw

GEZOCHT: De Kluts

Je huidige macro kijkt niet wat er in een cel staat, maar zet gewoon voor iedere waarde een plaatje.

Afhankelijk van de aantal varianten kan je werken met:
Visual Basic:
1
2
3
4
5
If cell.value="Afbeelding1" or cell.value="Afbeelding2" then

Code

End If

Garmin FR245M + HRM-RUN


  • Frituurman
  • Registratie: februari 2008
  • Laatst online: 17:07
m-vw schreef op woensdag 17 oktober 2018 @ 12:08:
Je huidige macro kijkt niet wat er in een cel staat, maar zet gewoon voor iedere waarde een plaatje.

Afhankelijk van de aantal varianten kan je werken met:
Visual Basic:
1
2
3
4
5
If cell.value="Afbeelding1" or cell.value="Afbeelding2" then

Code

End If
Ha! Geweldig! Het was dus inderdaad de plek in de code. Inmiddels heb ik het werkend gekregen met jouw toevoeging:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub KomtDatPlaatje()
Dim ws As Worksheet, cell As Range
Set ws = ThisWorkbook.Sheets("Rapportage")

Dim fPath, fDir As String

fDir = "C:\Specifieke\Map\Met\Afbeeldingen\"  'de DIR met de afbeeldingen
For Each cell In ws.[A1:A150] 'de range van cellen waar het moet gaan gebeuren
If cell.Value = "Afbeelding1.png" Or cell.Value = "Afbeelding2.png" Then
    fPath = fDir & cell.Value
    With ws.Pictures.Insert(fPath)
        With .ShapeRange
            .Width = 23
            .Height = 23
        End With
        .PrintObject = True
        .Top = cell.Top
        .Left = cell.Left
        
    End With
    End If
Next
End Sub
heuveltje schreef op woensdag 17 oktober 2018 @ 12:06:
Grappig, nooit geweten dat je rechtstreeks afbeeldingen kan invoeren, weer wat geleerd :)


https://www.excel-easy.com/vba/if-then-statement.html

je wilt iets van if cell.value = "plaajte" then .. doen
Dit doe je op het eerste punt nadat je de cel bepaald hebt,
Ik wist het ook niet, totdat ik er naar ging zoeken :)

[Voor 16% gewijzigd door Frituurman op 17-10-2018 12:53]

"Het probleem van quotes op internet is dat ze vaak niet kloppen of in elk geval niet herleidbaar zijn" - Vincent van Gogh

Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True