Option
Explicit
Private
mobjCommandButtonClass
As
clsCommandButton
Private
mobjTargetRow
As
Range
Private
Sub
UserForm_Activate()
Set
mobjCommandButtonClass =
New
clsCommandButton
With
Controls.Add(bstrProgID:=
"Forms.ListBox.1"
, Name:=
"ListBox1"
, Visible:=
True
)
.Left = 10!
.Top = 10!
.Height = 80!
.Width = 100!
.MultiSelect = fmMultiSelectMulti
.List() = Array(
"Deutschland"
,
"Norwegen"
,
"Spanien"
,
"Frankreich"
,
"Schweden"
,
"Portugal"
)
End
With
With
Controls.Add(bstrProgID:=
"Forms.CommandButton.1"
, Name:=
"CommandButton1"
, Visible:=
True
)
.Left = Controls(0).Left + Controls(0).Width + 10!
.Top = Controls(0).Top
.Height = 50!
.Width = 50!
.Caption =
"Bestätigen"
.BackColor = vbMagenta
End
With
With
mobjCommandButtonClass
Set
.prpcmdButton = Controls(1)
Set
.prpobjUserForm =
Me
End
With
End
Sub
Private
Sub
UserForm_Terminate()
Set
mobjCommandButtonClass =
Nothing
Set
mobjTargetRow =
Nothing
End
Sub
Friend
Property
Set
prpobjTargetRow(
ByRef
probjTargetRow
As
Range)
Set
mobjTargetRow = probjTargetRow
End
Property
Public
Sub
prcInsertCountryNames()
Dim
astrNames()
As
String
Dim
lngIndex
As
Long
, ialngCount
As
Long
With
Controls(0)
For
lngIndex = 1
To
.ListCount
If
.Selected(pvargIndex:=lngIndex - 1)
Then
ialngCount = ialngCount + 1
ReDim
Preserve
astrNames(ialngCount - 1)
As
String
astrNames(ialngCount - 1) = .List(pvargIndex:=lngIndex - 1)
End
If
Next
End
With
If
ialngCount > 0
Then
With
mobjTargetRow
Call
.ClearContents
ThisWorkbook.Worksheets(.Parent.Name).Cells( _
.Row, 1).Resize(1, UBound(astrNames) + 1).Value = astrNames
End
With
Else
If
MsgBox(
"Keine Länder ausgewählt, möchten Sie eine Auswahl treffen?"
, vbQuestion + vbYesNo) = vbNo
Then
_
Call
Unload(
Me
)
End
If
End
Sub