Hallo zusammen
Ich arbeite das erste Mal mit einer Listbox und ich hoffe ihr könnt mir helfen.
Ich habe ein Formular bei dem ich mehrere Comboboxen habe und neu eben auch Listboxen mit mehrfachauswahl. Ich möchte Daten von diesen Boxen auswählen, abspeichern und später wieder aufrufen und ändern können und dann wieder abspeichern. Mit den Comboboxen funktioniert dies einwandfrei, da es nur ein Eintrag hat. Hier kurz ein Beispiel:
For i = 1 To 4
frm_Formular.ComboBox_A.AddItem Sheets("ZuweiRechnung").Cells(i, 3) 'Combobox füllen
Next i
strg = Trim(Me.ComboBox_A.Value) 'speichern des Eintrags der Combobox als String
Me.ComboBox_A = strg(30) 'auslesen des Strings und in Combobox einfüllen
Nun zu meinem Problem mit den Listboxen. Ich kann die Listeboxen genau gleich füllen und als String abspeichern. Diesen String kann ich nachher auch wieder laden und in ein Array unterteilen. Und ab hier komme ich nicht mehr weiter.
Wie mache ich nun, dass in meinem Formular beim Wiederaufruf, die Values angezeichnet werden, welche ich früher ausgewählt habe? Mit dem Code bin ich so weit:
'Listbox füllen mit Einträgen
For i = 1 To 14
frm_Formular.ListBox_C.AddItem Sheets("ZuweiRechnung").Cells(i, 2)
Next i
'speichern der Einträge aus der listbox mit einem Komma dazwischen
For i = 0 To 14
If Me.ListBox_C.Selected(i) Then
strg = strg & Me.ListBox_C.List(i) & ","
Else
End If
Next i
'Einlesen des Strings und in ein Array umwandeln
Array_C = Split(strg(32))
wie geht es nun weiter?
Das Array ist momentan so, dass nur die Werte darin sind, die ich wirklich ausgewählt habe. Also wenn alle möglichen Werte, die folgenden wären:
Hund
Katze
Maus
Pferd
Sieht mein momentaner String so aus: Katze, Pferd und dann das Array:
Katze
Pferd
Ich könnte es aber auch so ändern, dass der String so aussieht: ,Katze,,Pferd und dann das Array so:
(leer)
Katze
(leer)
Pferd
Ich weiss jedoch nicht, ob das etwas bringt. Falls es auch mit dem ersten Weg geht, wäre das super!
Ich wäre froh um Tipps und Ratschläge! Vielen herzlichen Dank!!
Gruss Rami43
Ich arbeite das erste Mal mit einer Listbox und ich hoffe ihr könnt mir helfen.
Ich habe ein Formular bei dem ich mehrere Comboboxen habe und neu eben auch Listboxen mit mehrfachauswahl. Ich möchte Daten von diesen Boxen auswählen, abspeichern und später wieder aufrufen und ändern können und dann wieder abspeichern. Mit den Comboboxen funktioniert dies einwandfrei, da es nur ein Eintrag hat. Hier kurz ein Beispiel:
For i = 1 To 4
frm_Formular.ComboBox_A.AddItem Sheets("ZuweiRechnung").Cells(i, 3) 'Combobox füllen
Next i
strg = Trim(Me.ComboBox_A.Value) 'speichern des Eintrags der Combobox als String
Me.ComboBox_A = strg(30) 'auslesen des Strings und in Combobox einfüllen
Nun zu meinem Problem mit den Listboxen. Ich kann die Listeboxen genau gleich füllen und als String abspeichern. Diesen String kann ich nachher auch wieder laden und in ein Array unterteilen. Und ab hier komme ich nicht mehr weiter.
Wie mache ich nun, dass in meinem Formular beim Wiederaufruf, die Values angezeichnet werden, welche ich früher ausgewählt habe? Mit dem Code bin ich so weit:
'Listbox füllen mit Einträgen
For i = 1 To 14
frm_Formular.ListBox_C.AddItem Sheets("ZuweiRechnung").Cells(i, 2)
Next i
'speichern der Einträge aus der listbox mit einem Komma dazwischen
For i = 0 To 14
If Me.ListBox_C.Selected(i) Then
strg = strg & Me.ListBox_C.List(i) & ","
Else
End If
Next i
'Einlesen des Strings und in ein Array umwandeln
Array_C = Split(strg(32))
wie geht es nun weiter?
Das Array ist momentan so, dass nur die Werte darin sind, die ich wirklich ausgewählt habe. Also wenn alle möglichen Werte, die folgenden wären:
Hund
Katze
Maus
Pferd
Sieht mein momentaner String so aus: Katze, Pferd und dann das Array:
Katze
Pferd
Ich könnte es aber auch so ändern, dass der String so aussieht: ,Katze,,Pferd und dann das Array so:
(leer)
Katze
(leer)
Pferd
Ich weiss jedoch nicht, ob das etwas bringt. Falls es auch mit dem ersten Weg geht, wäre das super!
Ich wäre froh um Tipps und Ratschläge! Vielen herzlichen Dank!!
Gruss Rami43