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

Listbox aktualisieren

Forumthread: Listbox aktualisieren

Listbox aktualisieren
14.03.2023 08:52:07
Jürgen
hallo zusammen,
habe eine Frage..
ich habe eine Listbox die über Rowsource Eigenschaft gefüllt wird..
In den Textboxen werden die jeweiligen Werte aus der angeklickten Zeile der Listbox angezeigt.
wie kann ich es machen das wenn ich den Text in den Textboxen ändere, mir die angeklickte Zeile in der Listbox aktualisiert wird..bzw auch der neue Eintrag ins Tabellenblatt übernommen wird?

lg Jürgen
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox aktualisieren
14.03.2023 09:12:40
Alwin
Hallo Jürgen,
das zurückschreiben in das Tabellenblatt "Tabelle1" beispielhaft so:

Private Sub WerteinTabelle()
    Dim iZeile&, iStart&
    iStart = 2  ' Zeile des 1. Eintrags im Tabellenblatt
    iZeile = ListBox1.ListIndex + iStart + 1
    With Sheets("Tabelle1")
        .Cells(iZeile, 1) = TextBox1
        'usw.
    End With
End Sub
Sollte die Tabelle nicht in Spalte A beginnen muss die Spaltennummer in .Cells(iZeile, 1) entsprechend angepasst werden.
Gruß Uwe
Anzeige
AW: Listbox aktualisieren
14.03.2023 09:17:15
Jürgen
SUPER!!
vielen Dank
AW: Listbox aktualisieren
14.03.2023 10:08:11
Jürgen
so ganz klappt es leider noch nicht...
mir wird nicht die angeklickte Zeile überschrieben, sondern die Zeile darunter
AW: Listbox aktualisieren
14.03.2023 10:23:08
Daniel
Hi
der einfachste Weg hierfür wäre, dass du im Clickevent der Listbox die Textboxen mit den jeweiligen Zellen aus dem Zellbereich verknüpfst.
(Eintrag der Addresse in die Eigenschaft ControlSource)
dann hast du alles automatisch verknüpft und musst nichts weiter programmieren, dh automatisch wird:
- der Zellinhalt in der Textbox angezeigt
- bei einer Änderung der Textboxwert in die Zelle zurückgeschrieben
- der geänderte Wert sofort in der Listbox angezeigt.
der Code wäre hierfür im Click-Event der Listbox:
if Listbox1.ListIndex = -1 then 
    Textbox1.ControlSource = ""
    Textbox1.Text = ""
else
    With Range(ListBox1.RowSource)
        Textbox1.ControlSoucre = "'" & .Worksheet.Name & "'!" & .Cells(Listbox1.ListIndex + 1, 1).Address
    end with
end if
die Codezeile für die Textboxen musst du dann für jede Textbox mit geändrtem Spaltenindex wiederholen.
Beachte, dass der Index für die Listbox mit 0 startet, für die Ranges immer mit 1.
Da das Cells hier über die With-Klammer an den Zellbereich aus RowSource angehängt ist, ist .Cells(1, 1) die erste Zelle dieses Bereichs.
Gruß Daniel
Anzeige
AW: Listbox aktualisieren
14.03.2023 10:52:08
snb
Reicht schon:
Private Sub ListBox1_Change()
   TextBox1 = ListBox1.Value
End Sub
Private Sub TextBox1_Change()
  With ListBox1
     Range(.RowSource)(.ListIndex + 1) = TextBox1
  End With
End Sub

AW: Listbox aktualisieren
14.03.2023 11:34:43
Jürgen
irgendwie komme ich nicht klar..im Moment klappt garnichts
könnt ihr mir nochmal helfen?
vielleicht mache ich es auch zu umständlich..( auf jedenfall falsch)
Also die Listbox wird gefüllt über rowsource
..wenn ich eine Zeile in der Listbox anklicke, sollen mir die Daten aus der Listbox in die Textboxen übertragen werden..
.. wenn ich den Wert in den Textboxen ändere, soll mir die markierte Zeile in der Listbox überschrieben werden...
bei mir springt die Listbox immer wieder in die obere Zeile und ich kann nur den Wert aus der oberen Zeile bearbeiten..
wie wäre die einfachste Lösung?
Anzeige
AW: Listbox aktualisieren
14.03.2023 12:10:05
snb
Wo ist die Beispieldatei ?
AW: Listbox aktualisieren
14.03.2023 12:34:36
Jürgen
ich kann die Datei leider nicht hochladen...
den Code habe ich zum Listbox füllen...
Private Sub listboxbefuellen()
Dim rng As Range
Set rng = ErsatzteileDB.Range("A2").CurrentRegion
With ListBox1
.RowSource = rng.Address(external:=True)
.ColumnCount = rng.Columns.Count
.ColumnWidths = "50;50;110;50;50;50;50;50;50;50;50;50;50 "
.ColumnHeads = False
.ListIndex = 0
End With
End Sub
den Code um die Textboxen mit der Listbox zu füllen
Private Sub ListBox1_Click()
Artikelnummer = ListBox1.List(ListBox1.ListIndex, 0)
Regalplatz = ListBox1.List(ListBox1.ListIndex, 1)
Bezeichnung = ListBox1.List(ListBox1.ListIndex, 2)
Bestand = ListBox1.List(ListBox1.ListIndex, 3)
Mindestbestand = ListBox1.List(ListBox1.ListIndex, 4)
zugebucht = ListBox1.List(ListBox1.ListIndex, 5)
ausgebucht = ListBox1.List(ListBox1.ListIndex, 6)
Datum = ListBox1.List(ListBox1.ListIndex, 7)
Bearbeiter = ListBox1.List(ListBox1.ListIndex, 8)
End Sub

Anzeige
AW: Listbox aktualisieren
14.03.2023 12:39:48
snb
ich kann die Datei leider nicht hochladen...
Unsinn.
AW: Listbox aktualisieren
14.03.2023 13:04:37
Daniel
Hi
die einfachste Lösung ist die, die ich dir beschrieben habe:
im Click-Event der Listbox schreibst du die Adresse der jeweiligen betroffenen Zelle in die Eigenschaft ControlSource der entsprechenden Textbox.
damit ist dann im Prinzip alles miteinander verknüpft, die die von dir gewünschten Aktionen laufen automatisch ab:
a) der Wert aus der Exceltabelle wird in der Textbox angezeigt
b) wenn du den Wert in der Textbox änderst, wird die Änderung sofort in die Exceltabelle übernommen
c) die Änderung aus der Exceltabelle wird sofort in die ListboxListe übernommen.
Gruß Daniel
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige