Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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
Inhaltsverzeichnis

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

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
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
Anzeige
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige