1.9k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich habe mir überlegt die Datensätze in einer Tabelle in einer userform wiederzugeben, so dass man von die Spalten A, B und C von der Zeiel 2 bis zur letzten Zeile aufgezeigt wird

Und vor den jeweiligen Datensätzen solle eine Checkbox vorhanden sein.

Ist das Möglich zu erstellen?

Danke und Grüße

9 Antworten

0 Punkte
Beantwortet von
Hab das mit der Userform hinbekommen.
Listbox:
ListStyle ist auf Option
und MultiSelect auf Multiselect umgestellt.

jetzt müsste ich nur noch wissen,

wie ich das was ich markiere in die Tabelle Sheets("Tabelle2").Cells(2 bis i, 1 bis 3).

Danke für die Hilfe

Private Sub UsForm()
Dim iRow As Integer
Application.ScreenUpdating = False

ListBox100.ColumnCount = 3
ListBox100.ColumnWidths = "4cm; 4cm; 4cm"

For iRow = 2 To Sheets("Struktur").Range("A65536").End(xlUp).Row


ListBox100.AddItem Sheets("Struktur").Cells(iRow, 1)

ListBox100.List(ListBox100.ListCount - 1, 1) = Sheets("Struktur").Cells(iRow, 2)

ListBox100.List(ListBox100.ListCount - 1, 2) = Sheets("Struktur").Cells(iRow, 3)

Next
End Sub
0 Punkte
Beantwortet von
Hi,

Das könnte man z.B. erledigen wie folgt:

Dim lngCount As Long, lngFirstRow As Long
With ListBox100
For lngCount = 0 To .ListIndex
If .Selected(lngCount) = True Then
lngFirstRow = Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
Sheets("Tabelle2").Cells(lngFirstRow, 1) = .List(lngCount, 0)
Sheets("Tabelle2").Cells(lngFirstRow, 2) = .List(lngCount, 1)
Sheets("Tabelle2").Cells(lngFirstRow, 3) = .List(lngCount, 2)
.Selected(lngCount) = False
End If
Next
End With


bye
malSchauen
0 Punkte
Beantwortet von
super.. vielen Dank
das funktioniert..

weißt du vielleicht auch als abschließenden Frage, wo man es einstellen kann, dass die Checkboxen in der Listbox von anfang an ein häckchen haben..

Danke
0 Punkte
Beantwortet von
Hi,

Das könntest Du gleich beim Füllen der Listbox erledigen. Dazu ändere das Ende Deines Macros aus AW1 z.B. wie folgt:


UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 1) = Sheets("tabelle2").Cells(iRow, 2)
UserForm1.ListBox1.List(UserForm1.ListBox1.ListCount - 1, 2) = Sheets("tabelle2").Cells(iRow, 3)
UserForm1.ListBox1.Selected(UserForm1.ListBox1.ListCount - 1) = True
Next
End Sub


bye
malSchauen
0 Punkte
Beantwortet von
Hi,

Ups...

ListBox100.List(ListBox100.ListCount - 1, 1) = Sheets("Struktur").Cells(iRow, 2)
ListBox100.List(ListBox100.ListCount - 1, 2) = Sheets("Struktur").Cells(iRow, 3)
ListBox100.Selected(ListBox100.ListCount - 1) = True
Next
End Sub


... sollte das nat. heissen.

bye
malSchauen
0 Punkte
Beantwortet von
super!!! :-)
0 Punkte
Beantwortet von
nach ordentlicher Prüfung habe ich festgestellt, dass es nicht wirklich funktioniert..

die Häckchen sind gesetzt, aber der übertrag in die Cellen fuktioniert nicht..
das makro übernimmt nur den ersten Datensatz aus der Userform.

Nur wenn ich mit der Maus die Datensätze einmal ausgewählt habe, bis nach unten, dann übernimmt er die erst.

hast du eine Lösung für das Problem?
0 Punkte
Beantwortet von
Hi,

Oh ja. Fehler meinerseits. So wie es jetzt ist, darf man in der ListBox auch nicht von unten nach oben markieren. Ersetze beim Einstieg in die For-Schleife bei AW2:
For lngCount = 0 To .ListIndex
gegen
For lngCount = 0 To .ListCount
Dann sollte das funktionieren, da alle Zeilen auf "selected" hin untersucht werden.

bye
malSchauen
0 Punkte
Beantwortet von
ich gehe einfach mal davon aus, dass du

For lngCount = 0 To .ListCount -1

meinst.

vielen Dank
...