Thema Datum  Von Nutzer Rating
Antwort
19.12.2018 11:51:21 Hady
NotSolved
19.12.2018 16:10:14 Gast70117
NotSolved
30.01.2022 16:37:48 Hady
NotSolved
30.01.2022 18:07:28 xlKing
NotSolved
30.01.2022 19:58:55 Hady
NotSolved
30.01.2022 20:02:46 Hady
NotSolved
30.01.2022 21:59:43 Gast9187
NotSolved
30.01.2022 22:06:32 Hady
NotSolved
30.01.2022 22:12:54 Gast57784
NotSolved
30.01.2022 23:06:07 Gast89427
NotSolved
30.01.2022 22:08:52 Gast9187
NotSolved
30.01.2022 23:08:29 Gast24553
NotSolved
31.01.2022 01:30:31 xlKing
NotSolved
31.01.2022 13:37:44 Gast33627
NotSolved
31.01.2022 18:19:24 Hady
NotSolved
31.01.2022 18:56:16 Gast45997
NotSolved
31.01.2022 19:02:25 Gast45997
NotSolved
31.01.2022 19:19:05 Hady
NotSolved
Rot Der TE hätte eigentlich nur folgendes tun müssen...
31.01.2022 19:57:25 Gast98221
NotSolved
01.02.2022 15:29:22 Hady
NotSolved
01.02.2022 15:58:36 Hady
NotSolved
01.02.2022 15:58:37 Hady
NotSolved
01.02.2022 15:58:39 Hady
NotSolved
02.02.2022 11:50:44 Gast63249
NotSolved
03.02.2022 19:46:40 Hady
NotSolved

Ansicht des Beitrags:
Von:
Gast98221
Datum:
31.01.2022 19:57:25
Views:
651
Rating: Antwort:
  Ja
Thema:
Der TE hätte eigentlich nur folgendes tun müssen...

Passe das bei dir mal so an:

'UserForm: Auswahl
Option Explicit
 
Sub CommandButton1_Click()
  Me.Hide
End Sub
 
Public Property Get SelectedListItems() As Variant
  SelectedListItems = GetSelectedListItems()
End Property
 
Private Function GetSelectedListItems() As Variant
     
  Dim vntSelectedItems As Variant
  Dim i As Long
  Dim j As Long
  
  If ListBox1.ListCount = 0 Then
    GetSelectedListItems = Split(vbNullString) ' = Dim array(0 To -1)
    Exit Function
  End If
     
  ReDim vntSelectedItems(1 To ListBox1.ListCount)
     
  For j = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(j) Then
      i = i + 1
      vntSelectedItems(i) = ListBox1.List(j)
    End If
  Next
     
  If i > 0 Then
    ReDim Preserve vntSelectedItems(1 To i)
  Else
    vntSelectedItems = Split(vbNullString) ' = Dim array(0 To -1)
  End If
   
  GetSelectedListItems = vntSelectedItems
  Erase vntSelectedItems
     
End Function

in ThisDocument solltest du dann so an die Auswahl kommen

AuswahlPerson = Auswahl.SelectedListItems

Bonus:

Schau dir noch mal den Inhalt in der UserForm 'Auswahl' an.

Dort gibt es

  • eine private Methode GetSelectedListItems()
  • eine public Get Property SelectedListItems

Die Methode GetSelectedListItems() wird innerhalb der Property aufgerufen und der Rückgabewert wird so nach außen gereicht. Die Methode GetSelectedListItems() selbst, ist nach außen hin nicht sichtbar (sie ist privat).

Warum ist die Privat; warum wurde da so gemacht?

Weil man praktisch auch noch folgendes tun kann, wenn man mehrere Listenfelder auf der UserForm hat.

man ändert

Private Function GetSelectedListItems() As Variant

zu

Private Function GetSelectedListItems(ListBox As MSForms.ListBox) As Variant

und innerhalb der Methode GetSelectedListItems ändert man jetzt alles was ListBox1 heißt zu ListBox. Wir verallgemeinern also.

Was bringt das? => Man kann jetzt mit dieser einen Methode die Auswahl einer jeden beliebigen ListBox auf der UserForm abfragen.

z.B: (ich werd hier mal bei deutschen Bezeichnern bleiben)

Public Property Get KategorienAusgewählt() As Variant
  KategorienAusgewählt = GetSelectedListItems(lboKategorien) 'lboKategorien ist eine ListBox
End Property

Public Property Get PreisgruppenAusgewählt() As Variant
  PreisgruppenAusgewählt = GetSelectedListItems(lboPreisgruppen) 'lboPreisgruppen ist eine ListBox
End Property

'usw. für beliebig viele möglich

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.12.2018 11:51:21 Hady
NotSolved
19.12.2018 16:10:14 Gast70117
NotSolved
30.01.2022 16:37:48 Hady
NotSolved
30.01.2022 18:07:28 xlKing
NotSolved
30.01.2022 19:58:55 Hady
NotSolved
30.01.2022 20:02:46 Hady
NotSolved
30.01.2022 21:59:43 Gast9187
NotSolved
30.01.2022 22:06:32 Hady
NotSolved
30.01.2022 22:12:54 Gast57784
NotSolved
30.01.2022 23:06:07 Gast89427
NotSolved
30.01.2022 22:08:52 Gast9187
NotSolved
30.01.2022 23:08:29 Gast24553
NotSolved
31.01.2022 01:30:31 xlKing
NotSolved
31.01.2022 13:37:44 Gast33627
NotSolved
31.01.2022 18:19:24 Hady
NotSolved
31.01.2022 18:56:16 Gast45997
NotSolved
31.01.2022 19:02:25 Gast45997
NotSolved
31.01.2022 19:19:05 Hady
NotSolved
Rot Der TE hätte eigentlich nur folgendes tun müssen...
31.01.2022 19:57:25 Gast98221
NotSolved
01.02.2022 15:29:22 Hady
NotSolved
01.02.2022 15:58:36 Hady
NotSolved
01.02.2022 15:58:37 Hady
NotSolved
01.02.2022 15:58:39 Hady
NotSolved
02.02.2022 11:50:44 Gast63249
NotSolved
03.02.2022 19:46:40 Hady
NotSolved