zunächst vielen Dank für die Ausführung und Erklärung. Meine Absicht war nicht mit mehreren Treads Völker zu beschäftigen, sorry dafür.
Grüße; dir sei verziehen.
Kannst du bitte (nochmal) darauf eingehen "wo" und in welchem "Modul" du diesen Aufruf ausführen möchtest? Wenn man "Modul" meint, dann nimmt jedermann automatisch ein einfaches Modul an (kein Klassenmodul / UserForm / Worksheet / etc).
Ich habe es bisher so verstanden,
dass du die Liste außerhalb der UserForm benötigst.
'Modul
Option Explicit
Public Sub IrgendeineSub()
Dim usf As UserForm1
Dim vntItems As Variant
Set usf = New UserForm1
Call usf.Show '< wird intern über Me.Hide geschlossen; NICHT per Unload Me !!
vntItems = usf.SelectedListItems '< benutzerdefinierte Property (s. früheren Beitrag)
Set usf = Nothing
'...
'mit vntItems etwas tun
End Sub
Wenn du das hier schreibst:
If GetSelectedListItems(1) = Name Then
Wird dir dir Liste gelierfert. Davon holst du dir das erste Element und vergleichst es mit Name; UND dann wird es schon wieder aus dem Speicher entladen.
Beachte bitte Zeile 12 oben. Dort wird das Ergebnis in eine Variable zwischengespeichert. Mit der solltest du dann arbeiten.
z.B:
If UBound(vntItems()) > 0 Then
If vntItems(1) = Name Then
ElseIf vntItems(2) = "blabla" Then
'...
End If
Grüße
|