Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Listbox einträge in intelligente Tabelle bringen

Listbox einträge in intelligente Tabelle bringen
17.06.2024 12:38:55
chkemm
Hallo Forum,
Ich bin neu hier im Forum und habe schon einige Threads gelesen die sehr nützlich waren.
Hierfür erstmal großes lob und danke das Ihr alle so hilfsbereit seit.

Jetzt zu meinem Problem, ich würde gerne Werte einer Listbox in der Userform in eine intelligente Tabelle eintragen.
aber nicht in eine Spalte, sondern in eine Reihe heist:
Der 1. Wert der Listbox soll in Reihe 2 Zelle B,
der 2 Wert der LB soll in Reihe 2 Zelle C,
der 3 in Zelle C usw.
Könnt ihr mir da helfen?
Mfg Chkemm
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
17.06.2024 12:57:34
MCO
Hallo Chkemm,

da du uns keine Daten lieferst, bleibt die Antwort leider auch vage:
Im prinzip geht es so

for i = 1 bis Ende
Dein_Sheet.cells(2, i+1) = Listboxeintrag (i).value

next

Gruß, MCO
AW: Listbox einträge in intelligente Tabelle bringen
17.06.2024 13:11:19
Alwin Weisangler
Hallo,

Wenn es um einen Neueintrag ins Listobject geht gibt es die Funktion: .ListRows.Add
Wenn ein Eintrag überschrieben werden soll braucht es eine Zeilennummer oder irgendetwas eindeutig Identifizierbares. Diese sollte beim Füllen der Listbox mitgegeben werden.
Zeilennummer: erklärt sich von selbst.
eindeutig Identifizierbares: kann man mit .Find Methode Zeilennummer lesen und dann diese - .HeaderRowRange.Row die Zeilennummer im Listobjekt errechnen.

Gruß Uwe

Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
17.06.2024 15:01:26
chkemm
Hallo nochmal hier eine Beispiel Datei.
es soll in der UF arbeiten in die wöchentliche Wartung geschoben werden, und diese dann durch den "anlege" Button in die Tabelle eingefügt werden.

https://www.herber.de/bbs/user/170319.xlsm
Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
17.06.2024 16:12:56
Alwin Weisangler
Hallo,

das ist erst mal für die formularinternen Dinge:


Option Explicit

Private Sub leerenjhl_Click()
lb_jährlich.Clear
End Sub

Private Sub leerenwtl_Click()
lb_wöchentlich.Clear
End Sub

Private Sub UserForm_Initialize()
lb_wartungen.List = Tabelle2.ListObjects(1).DataBodyRange.Value
End Sub

Private Sub zujhl_Click()
Dim i&, arr()
With lb_wartungen
For i = 0 To lb_wartungen.ListCount - 1
If .Selected(i) = True Then
lb_jährlich.AddItem .List(i, 0)
.Selected(i) = False
End If
Next i
End With
End Sub

Private Sub zuwlt_Click()
Dim i&, arr()
With lb_wartungen
For i = 0 To lb_wartungen.ListCount - 1
If .Selected(i) = True Then
lb_wöchentlich.AddItem .List(i, 0)
.Selected(i) = False
End If
Next i
End With
End Sub

Nun mehrere Fragen der Zieltabelle betreffend:
- Was kommt in Spalte: Spalte1 (meine Vermutung Öl wechseln, Filter tauschen etc.)
- Wie korrelieren die To Do Spalten im Zusammenhang mit den Listboxen für wöchentlich bzw. jährlich.
- Soll bei jeden Schreibvorgang eine Neue Zeile erzeugt werden, oder die 1. Zeile überschrieben werden.

Gruß Uwe


Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
17.06.2024 16:23:01
snb
Sub M_save()

With lb_wartungen
For i = .ListCount - 1 to 0 step -1
If .Selected(i) =false Then .removeitem j
Next
Tabelle2.listobjects(1).databodyrange=.list
end with
End Sub



Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
18.06.2024 07:27:33
chkemm
Hallo,
-In Spalte 1 soll noch ein Bezug auf ein Textfeld gemacht werden, das ist aber noch nicht geschrieben.
-Aus der ToDo liste sollen Werte eingeschrieben werden können, die dann entweder in wöchentlich oder jährlich oder beides übernommen werden können.
-Er soll eine neue Zeile schreiben, da es um ein anlegen geht, überschreiben ist dann ein extra schritt mit einer anderen UF
Anzeige
AW: Listbox einträge in intelligente Tabelle bringen
18.06.2024 10:55:42
Alwin Weisangler
Hallo,

damit man in der Liste wenigstens den Unterschied zwischen wöchentlich und jährlich erkennen kann, wird am Ende ein J bzw. ein W mitgegeben.
Ansonsten erklärt sich mir dieser Konstrukt höchstens dahingehend, dass du dies hier als Möglichkeit zum Lernen betrachtest wie man in Listobjects programmiert.

so:


Option Explicit

Private Sub leerenjhl_Click()
lb_jährlich.Clear
End Sub

Private Sub leerenwtl_Click()
lb_wöchentlich.Clear
End Sub

Private Sub Maschine_anlegen_Click()
Dim i&, k&, arr()
ReDim arr(1 To 1, 1 To Tabelle2.ListObjects(1).ListRows.Count + 1)
With lb_wöchentlich
For i = 1 To .ListCount
arr(1, .List(i - 1, 0) + 1) = .List(i - 1, 1) & " W"
Next i
End With

With lb_jährlich
For i = 1 To .ListCount
arr(1, .List(i - 1, 0) + 1) = .List(i - 1, 1) & " J"
Next i
End With
With Tabelle1.ListObjects(1)
.ListRows.Add.Range.Resize(UBound(arr, 1), UBound(arr, 2)) = arr
End With
End Sub

Private Sub UserForm_Initialize()
lb_wartungen.List = Tabelle2.ListObjects(1).DataBodyRange.Value
End Sub

Private Sub zujhl_Click()
Dim i&, arr()
With lb_wartungen
For i = 0 To lb_wartungen.ListCount - 1
If .Selected(i) = True Then
lb_jährlich.AddItem i + 1
lb_jährlich.List(lb_jährlich.ListCount - 1, 1) = .List(i, 0)
.Selected(i) = False
End If
Next i
End With
End Sub

Private Sub zuwlt_Click()
Dim i&, arr()
With lb_wartungen
For i = 0 To lb_wartungen.ListCount - 1
If .Selected(i) = True Then
lb_wöchentlich.AddItem i + 1
lb_wöchentlich.List(lb_wöchentlich.ListCount - 1, 1) = .List(i, 0)
.Selected(i) = False
End If
Next i
End With
End Sub


Gruß Uwe
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige