Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1912to1916
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 Daten übergeben und bearbeiten

Listbox Daten übergeben und bearbeiten
21.12.2022 07:55:18
Marcus
Guten Morgen zusammen,
ich habe eine Zelle, wo man reinklickt und dann öffnet sich eine Userform mit einer Listbox. Diese Listbox zieht sich die Daten aus einer Tabelle im zweiten Worksheet. Diese Listbox soll aber nur die Spalteninformation von "Aufgaben" und nur die ersten 3 Informationen (Brot backen. Küche sauber machen. Tisch decken.) anzeigen, nicht die "Nr." aus der Tabelle.
Wenn z.B. die Auswahl getroffen wurde "1.1 Brot backen" und "1.3 Tisch decken" und auf den Button "Übernehmen" geklickt wird, sollen die Informationen im Worksheet "Tabelle1" in einer Zelle hintereinander geschrieben werden (das funktioniert auch). Jetzt möchte ich aber, dass ich in diese Zelle reinklicke und den Text ändern, z.B. aus "Brot backen" --> "Brot einkaufen" manuell abändern. Wenn ich dann die Userform nochmal öffne, möchte ich dann einen den Punkt "1.2 Küche sauber machen" markieren und einfach in die gleiche Zelle ans Ende geschrieben bekommen, ohne das sich mein manuell geänderter Text gelöscht wird. Wenn ich die Userform im Anschluss wieder öffne und dann den geänderten Punkt nicht mehr haben möchte, soll ich diesen abwählen können und soll nicht mehr in der Zelle angezeigt werden. Der Punkt "1.1 Brot backen" soll aber nicht in der Tabelle, wo die Listbox die Daten hernimmt überschrieben werden, soll dauerhaft gleich bleiben.
Ein letzter Punkt noch, die Zelle, die ich anklicke, um die Userform zu öffnen, soll immer wenn ich darauf klicke geöffnet werden, ohne das ich immer in ein anderes Feld klicken muss.
Könnt ihr mir hierbei weiterhelfen (https://www.herber.de/bbs/user/156873.xlsm)? Vielen vielen Dank.
Viele Grüße Marcus

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox Daten übergeben und bearbeiten
21.12.2022 10:31:31
Alwin
Hallo Marcus,
mit RowSource wird das so nichts, ohne Änderung der dazu korrelierenden Tabelle.
Mittels .List kann man den Inhalt der Listbox wie folgt manipulieren:
Wenn du durch klicken in die Zelle via TextBox eine Änderung nur in der Zelle der Listbox willst, geht das über die Zeile und der X Koordinate zu berechnen. Dann kann man in Array der Listbox die entsprechende Zelle ändern und in die Listbox zurück schreiben.
Dann sind deine Spaltenüberschriften in der Listbox weg. Weils dies eben mit RowSource geht.
Gruß Uwe
AW: Listbox Daten übergeben und bearbeiten
21.12.2022 10:43:27
Alwin
Beim nochmals lesen ist mir aufgefallen, dass ja nur die Zellen der 2. Spalte in Frage kommen. Da brauchs die Berechnung aus der X Koordinate gar nicht.
Anzeige
AW: Listbox Daten übergeben und bearbeiten
21.12.2022 17:44:01
Marcus
Vielen Dank für die schnelle Unterstützung. Ich habe mir die Datei jetzt runtergeladen, kann diese zwar öffnen, aber die hat keine Funktion. Ich kann die Userform nicht starten.
AW: Listbox Daten übergeben und bearbeiten
21.12.2022 20:11:02
Alwin
Hallo Marcus,
die runtergeladene Datei mit der rechten Maustaste anklicken --> auf Eigenschaften gehen --> und zulassen. Dann sollte es gehen.

Option Explicit
Dim iZeile&
Private Sub btnTabellenblatt_Click()
Dim i&, Daten$
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then Daten = Daten & " " & ListBox1.List(i, 1)
Next
Sheets("Tabelle1").Range("C2").Value = Mid(Daten, 2)
UserForm1.Hide
End Sub
Private Sub CommandButton1_Click()
UserForm1.Hide
End Sub
Private Sub CommandButton2_Click()
WertAendern
End Sub
Private Sub WertAendern()
Dim arrList()
arrList = ListBox1.List
arrList(iZeile, 1) = TextBox1
ListBox1.List = arrList
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
With ListBox1
TextBox1 = .List(.ListIndex, 1)
iZeile = .ListIndex
End With
End Sub
Private Sub UserForm_Initialize()
Dim arrSpalten()
arrSpalten = Array(30, 300)
With ListBox1
.List = Tabelle2.ListObjects("Tabelle2").DataBodyRange.Value
.ColumnWidths = Join(arrSpalten, "; ")
End With
End Sub
Neu hinzugekommen sind eine TextBox und ein Button. Mit Doppelklick wird der Text der Zeile in die Textbox geladen, kann dann geändert werden und mit dem neuen Button geändert in die Listbox zurückgeschrieben werden.
https://www.herber.de/bbs/user/156885.xlsm
Gruß Uwe
Anzeige
AW: Listbox Daten übergeben und bearbeiten
22.12.2022 07:44:53
Marcus
Guten Morgen Uwe,
vielen Dank, hat funktioniert.
Würde es technisch funktionieren, dass der geänderte Text als Zusatzpunkt einfach zu den anderen Punkten in der oberen Listbox unterhalb hinzugefügt werden kann? So dass ich quasi den Standardkatalog nicht verändere (Die geänderten Texte sollen nur in der Listbox dann verfügbar sein und nicht in den Standardkatalog übernommen werden). Besteht auch die Möglichkeit, dass die Listbox nur die ersten 3 Punkte aus dem Standardkatalog anzeigt und nicht alle 5 Einträge der Tabelle?
Vielen vielen Dank für deine Unterstützung.
Viele Grüße Marcus
Anzeige
AW: Listbox Daten übergeben und bearbeiten
22.12.2022 09:31:40
Marcus
Guten Morgen Uwe,
ja Mega geil, vielen vielen Dank. Genau so. Gibt es noch die Möglichkeit, dass die Listbox nur die ersten 3 Einträge lädt und nicht alle 5 Einträge aus der Stammdatentabelle (Tabelle2 aus dem Worksheet 2)?
Viele Grüße Marcus
Ändere im Initialize das Laden der Listbox so:
22.12.2022 10:24:57
Alwin
.List = Tabelle2.Range("A2:B4").Value
AW: Ändere im Initialize das Laden der Listbox so:
22.12.2022 10:33:02
Marcus
Klasse, vielen Dank. Eine kleine Sache hätte ich noch, entschuldige bitte. Wenn ich Excel schließe und wieder öffne und die Listbox öffne, sind die bearbeiteten Texte wieder gelöscht. Funktioniert das, dass die in der Listbox hinterlegt bleiben und das die Texte die in der Zelle stehen und die Userform öffne, die schon als markiert wieder aufgerufen werden?
Wenn du zu aufwendig ist, ist das kein Problem.
Vielen Dank nochmal für deine Unterstützung.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige