Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
216to220
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
216to220
216to220
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

mehrspaltige Listbox (Array)

mehrspaltige Listbox (Array)
10.02.2003 15:58:44
Chris
Hallo Forum

Das blöde Array-Dingsbums bringt mich noch zum Verzweifeln...

In einem Userform habe ich eine 3-spaltige Listbox. Mittels einem Commandbutton möchte ich einen neuen Eintrag zu den bestehenden Listbox-Einträgen hinzufügen.

Soweit bin ich schon...

Option Explicit
Public ArrayLange As Integer
Public MyArray() As Variant

Private Sub Hinzufugen_Click()
Dim i As Integer
ArrayLange = ArrayLange + 1
ReDim MyArray(1 To ArrayLange, 0 To 2)
ExposureListe.ColumnCount = 3
MyArray(ArrayLange, 0) = "A"
MyArray(ArrayLange, 1) = "B"
MyArray(ArrayLange, 2) = "C"
ExposureListe.List = MyArray
End Sub

Der Code fügt zwar einen neuen Eintrag hinzu, aber die bestehenden Listbox-Einträge verschwinden. Ist mir auch klar, nur wie bekomme ich die bestehenden Listbox-Einträge ins Array zurück oder gibt es vielleicht auch einen direkten Weg im Stil AddItem?

In der Folge kommt dann noch die Frage, wie ich einen einzelnen ausgewählten Listbox-Eintrag auf Knopfdruck wieder löschen kann.

Herzlichen Dank im Voraus.

Gruss
Chris

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: mehrspaltige Listbox (Array)
10.02.2003 16:22:01
Steffan

Hallo Chris,

Die Anweisung 'Redim' löcht Dein Datenfeld vor der Neudimensionierung. Verwende zum Erhalten der bestehenden Werte die Anweisung 'Redim Preserve'. Außerdem ist zu beachten, dass mit Redim generell nur die letze Dimension eines mehrdimensionalen Datenfeldes geändert werden kann.

Steffan.


Re: mehrspaltige Listbox (Array)
10.02.2003 16:38:57
Chris

Hallo Steffan

Danke für die Erklärung, leuchtet mir soweit auch ein, nur krieg ich es trotzdem nicht hin.

ArrayLange = ArrayLange + 1
ReDim Preserve MyArray(1 To ArrayLange, 0 To 2)
ExposureListe.ColumnCount = 3
MyArray(ArrayLange, 0) = "A"
MyArray(ArrayLange, 1) = "B"
MyArray(ArrayLange, 2) = "C"
ExposureListe.List = MyArray

Was mache ich falsch? (Fehler 9 auf der ReDim Zeile, ...out of range)

Nochmals Danke und Gruss
Chris


Anzeige
Re: mehrspaltige Listbox (Array)
10.02.2003 17:46:14
Chris

Hallo Steffan

So ganz war es mir wohl trotzdem nicht klar, denn erst jetzt bin ich darauf gekommen, was du mit "nur die letzte Dimension ändern" gemeint hast.

Eine "horinzontale" Liste statt einer "vertikalen" Liste nützt mir in diesem Fall natürlich nichts, woraus ich schliesse, dass sich mein Problem nicht lösen lässt oder seh ich es falsch?

Werde mir nun über eine Hilfstabelle aushelfen.

Gruss
Chris

Re: mehrspaltige Listbox (Array)
10.02.2003 19:15:32
Steffan

Hallo Chris,

tausch doch einfach die Dimensionen Deines Arrays beim Einlesen (Dim Array(0 to 2, 0 To ArrayLange). Solange Du die andere Dimension nicht auch noch dynamisch heben musst, sollte es dann funktionieren.

Steffan.

Anzeige
Re: mehrspaltige Listbox (Array)
10.02.2003 21:50:26
Chris

Hallo Steffan

Wenn ich das so mache wie du vorschlägst, dann ist bei mir aus der Liste z.B.

Hans, Meier, 333
Peter, Müller, 40
Fritz, Bubsdiwubs, 50
...

sowas geworden

Hans, Peter, Fritz...
Meier, Müller, Bubsdiwubs...
333, 40, 50....

Wie gesagt, habe es inzwischen anders gelöst. Falls ich es aber falsch sehe (bin vielleicht etwas schwer von Begriff), dann bin ich um eine Erklärung (fürs nächste mal) dankbar.

Danke sowieso.

Gruss
Chris

Re: mehrspaltige Listbox (Array)
11.02.2003 11:24:54
Steffan

Hallo Chris,

natürlich musst Du auch an allen anderen Stellen, an denen Du das Array verwendest die Dimensionen umtauschen. Das kann bei größeren Projekten echt in Arbeit ausarten. Deshalb ist es besser sich bei dynamischen Datenfeldern im Vorfeld vorher zu überlegen, welche Dimension dynamisch sein soll und diese dann an das Ende zu setzen. Na ja, vielleicht beim nächsten Mal ;-)

Steffan.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige