Sub CommandButton1_Click()
Dim s As Shape
Dim pad, naamplaatje, extensieplaatje As String
'pad naar de plaatjes
pad = "C:\excel\ "
'naam van de plaatjes voor het cijfer, bijv. rond ipv rond1.bmp
naamplaatje = "rondje"
'extensie van het plaatje + de voorloop .
extensieplaatje = ".bmp"
'controleer of alle velden zijn ingevuld
If Me.kaderstijl.Value <> "" And Me.kaderregel.Value <> "" And Me.vleugelstijl.Value <> "" And Me.vleugelregel.Value <> "" Then
With ActiveCell
Set s = .Parent.Shapes.AddPicture(pad & naamplaatje & Me.kaderstijl.Value & extensieplaatje, True, True, .Left, .Top, .Width, .Height)
With s
'Hiermee kan je de schaal van je plaatje nog aanpassen
'staat nu op 1x vergroten, kan bijvoorbeeld ook 0.9 of 1.1 worden (kleiner of groter)
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
'hiermee verplaats je de locatie van je plaatje in je cel.
.IncrementLeft 1
.IncrementTop 1
End With
End With
With ActiveCell.Offset(, 1)
Set s = .Parent.Shapes.AddPicture(pad & naamplaatje & Me.kaderregel.Value & extensieplaatje, True, True, .Left, .Top, .Width, .Height)
With s
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.IncrementLeft 1
.IncrementTop 1
End With
End With
With ActiveCell.Offset(, 2)
Set s = .Parent.Shapes.AddPicture(pad & naamplaatje & Me.vleugelstijl.Value & extensieplaatje, True, True, .Left, .Top, .Width, .Height)
With s
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.IncrementLeft 1
.IncrementTop 1
End With
End With
With ActiveCell.Offset(, 4)
Set s = .Parent.Shapes.AddPicture(pad & naamplaatje & Me.vleugelregel.Value & extensieplaatje, True, True, .Left, .Top, .Width, .Height)
With s
.ScaleHeight 1, msoTrue
.ScaleWidth 1, msoTrue
.IncrementLeft 1
.IncrementTop 1
End With
End With
Else
MsgBox "Vul alle gegevens juist in?"
End If
Unload Me
End Sub
Private Sub UserForm_Activate()
'controleer of er wel een cel geselecteerd is in kolom G onder een cel met de tekst Kader Stijlen
'let op!!! in sommige cellen had jij en spatie achter Stijlen staan, hierdoor werkt de controle niet
'VBA kijkt puur naar het aantal juiste tekens.
If Intersect(ActiveCell, Range("G:G")) Is Nothing Or ActiveCell.Offset(-1) <> "Kader Stijlen" Then
MsgBox "Selecteer een cel in kolom G onder een cel met de tekst: Kader Stijlen?"
Me.Hide
End If
End Sub