Hallo nochmal:
Hab mir das eben nochmal genauer angesehen. Ein paar Sachen fallen mir noch auf.
Die zweite Redim-Zeile innerhalb der Schleife muss natürlich auch noch raus. Du hast mit ReDim AuswahlPerson(0 To ListBox1.ListCount - 1) das Array bereits ausreichend definiert. Das dann nochmal zu machen ist sinnlos. Wenn du das aber drin lässt, musst du noch das Schlüsselwort Preserve hinzufügen, so wie Gast 36741 das dir in dem anderen Beitrag gezeigt hat. Denn nur dann werden bereits eingetragene Daten auch behalten.
Schau dir nochmal genau den anderen Beitrag von Gast 36741 an. Dann wirst du auch feststellen, dass dort zwei Variablen i und j verwendet wurden. Du hast in deiner Adaption aber nur i verwendet, weshalb du am Ende ein Array erhältst, das exakt der Liste entspricht, also auch Platz für nicht selektierte Einträge freihält. Auch wenn da nix drin steht. Willst du das wirklich so?
Dein CommandButton1, der den Code es Zuweisens auslöst, scheint im zweiten Userform zu sein. Von diesem greifst du offenbar auf das erste Userform Auswahl zu, welches du mit .Hide zwar ausblendest aber im Hintergrund noch aktiv bleibt. Deine auszulesende Listbox scheint im ersten Formular zu sein. In dem Fall musst du natürlich auch korrekt auf dieses referenzieren. Sprich: ReDim AuswahlPerson(0 To Auswahl.ListBox1.ListCount - 1) sowie im If Block: If Auswahl.ListBox1.Selected(i) Then und bei der Zuweisung ebenfalls AuswahlPerson(i) = Auswahl.ListBox1.List(i)
Das ist wichtig, denn wenn du Auswahl weglässt wird die Listbox1 im aktuellen Userform angesprochen. Die vielleicht nicht vorhanden oder eine andere Anzahl an Listeneinträgen hat. Dann kann es auch zu Index außerhalb des gültigen Bereichs kommen. Nur in der Schleife hast du das korrekt definiert.
Sollten diese Tipps nicht helfen, dann beschreib doch bitte nochmal exakt, welchen Code du in welchem Modul stehen hast.
Gruß Mr. K.
|