[VBA] 2 plaatjes op basis van 1 input meeveranderen

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • Dhamit
  • Registratie: December 2012
  • Laatst online: 01-10 19:16
Mijn vraag
Hoe zorg ik ervoor dat er niet 1 plaatje maar 2 plaatjes meeveranderen op basis van input waarde?

Relevante software en hardware die ik gebruik
Excel 2016
VBA

Wat ik al gevonden of geprobeerd heb
Deze tutorial: YouTube: Excel VBA: Insert Picture from Directory on Cell Value Change

en deze code:

Private Sub worksheet_Change(ByVal Target As Range)

Dim myPict1 As Picture
Dim PictureLoc1 As String

If Target.Address = Range("C4").Address Then

ActiveSheet.Pictures.Delete

PictureLoc1 = "C:\Users\reX\Pictures\SilverKaarten\" & Range("C4").Value & ".jpg"

With Range("J6")
Set myPict1 = ActiveSheet.Pictures.Insert(PictureLoc1)
myPict1.Width = 290
myPict1.Top = .Top
myPict1.Left = .Left
myPict1.Placement = xlMoveAndSize
End With

End If

End Sub

Private Sub worksheet_Changes(ByVal Target As Range)

Dim myPict2 As Picture
Dim PictureLoc2 As String

If Target.Address = Range("C4").Address Then

ActiveSheet.Pictures.Delete

PictureLoc2 = "C:\Users\reX\Pictures\SilverFotos\" & Range("C4").Value & ".jpg"

With Range("C43")
Set myPict2 = ActiveSheet.Pictures.Insert(PictureLoc2)
myPict2.Height = 450
myPict2.Top = .Top
myPict2.Left = .Left
myPict2.Placement = xlMoveAndSize
End With

End If

End Sub


Hoi,

Ik ben een VBA-Newb en zoek graag hulp bij de volgende vraag: Ik heb nu op basis van de bovenstaande tutorial de volgende VBA code opgesteld. Deze werkt! Enkel werkt ie slechts voor 1 afbeelding, waar ik graag deze wil laten werken voor 2 plaatjes (zie code)

Is dit mogelijk?

Met vriendelijke groet,
Raid

Beste antwoord (via Dhamit op 09-07-2018 11:29)


  • breew
  • Registratie: April 2014
  • Laatst online: 17:26
Dan voeg je de code van beide subs samen naar één sub?

tip: je wilt ActiveSheet eigenlijk zoveel mogelijk vermijden.. dat gaat onherroepelijk een keer mis. Beter verwijs je 'hard' naar een sheet dmv:
code:
1
ActiveWorkbook.Sheets("Blad1")

Of zet je worksheets in een Worksheet-variabele. Als je meerdere workbooks open hebt staan, dan zou ook die ActiveWorkbook in een aparte variabele zetten.

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 17:26
Dan voeg je de code van beide subs samen naar één sub?

tip: je wilt ActiveSheet eigenlijk zoveel mogelijk vermijden.. dat gaat onherroepelijk een keer mis. Beter verwijs je 'hard' naar een sheet dmv:
code:
1
ActiveWorkbook.Sheets("Blad1")

Of zet je worksheets in een Worksheet-variabele. Als je meerdere workbooks open hebt staan, dan zou ook die ActiveWorkbook in een aparte variabele zetten.

Acties:
  • 0 Henk 'm!

  • Dhamit
  • Registratie: December 2012
  • Laatst online: 01-10 19:16
Topper, dank je wel!!