Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

UserForm-Listbox nutzen, um Tabelleneinträge zu ändern
#1
Hallo,

kaum hier beigetreten, schon wieder ein Problemchen, das ich trotz aller Suchen und Bemühungen mit meinen wenigen Kenntnissen nicht gelöst bekomme:

Ich habe eine Tabelle "TB_Mitarbeiter". Diese besteht aus 3 Spalten:  A="Nachname" B="Vorname" C="BNr"

Weiterhin habe ich ein Userform "MitarbeiterVerwaltung", das eine Listbox "ListBox_Mitarbeiter" enthält, sowie drei Textboxen "Textbox_Nachname", "Textbox_Vorname", "Textbox_BNr".
Und mehrere CommandButtons, z.B. "Neu", "Bearbeiten" und "Löschen".

Ich habe es hinbekommen, dass ich in die TextBoxen Nachnamen, Vornamen und BNr. eingeben kann, dann auf "Neu" klicke und er trägt das in mein Tabellenblatt TB_Mitarbeiter in die nächste freie Zeile ein.
Auch das Löschen eines ausgewählten Eintrags in der Checkbox klappt.

Jetzt möchte ich folgendes realisieren:

Bei Doppelclick auf eine Zeile in der Listbox soll er mir die drei Textboxen mit deren Inhalt füllen. Ich möchte nun in der Textbox eine Änderung vornehmen können, auf CommandButton "Bearbeiten" klicken und er soll im Tabellenblatt die entsprechende Zeile abändern. 


Ich krieg's leider selbst nicht gebacken und würde mich über Hilfe freuen.
Danke!!
Rub
Antworten Top
#2
Hallo 

Wozu der Aufwand/Umweg über die UF, warum nicht direkt in die Zelle/Tabelle?

Gruß Elex
Antworten Top
#3
Weil das Programm etwas umfassender wird mit diversen UserForms etc.  Soll durch eine Vielzahl von Mitarbeitern benutzt werden. Sie sollten nicht direkt in Tabellen herumpfuschen können.

Das von mir Beschriebene ist nur 3% des Programms. Hauptsächlich geht es darum, einen Gerätebestand zu inventarisieren und Geräte, die Mitarbeiter ausliehen entsprechend zu dokumentieren. Das Ganze mit BarCode-Scanner etc.
Antworten Top
#4
Hallo,

Code:
Private Sub ListBox_Mitarbeiter_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  With ListBox_Mitarbeiter
    Textbox_Nachname = .List(, 0)
    Textbox_Vorname = .List(, 1)
    Textbox_BNr = .List(, 2)
  End With
End Sub

Gruß Uwe
Antworten Top
#5
Ok. Ich kann die Überlegung/ Faszination UF schon nachvollziehen. Wie jeder der sich etwas mehr mit Excel beschäftigt habe ich auch viel Zeit in die UF Erprobung gesteckt. Was für mich aber zu der Erkenntnis geführt hat, alles was ich in UF‘s machen kann geht zu 99,9% auch im Zellbereich und dass wesentlich einfacher (auch Eingabemasken). Nicht desto trotz kannst du es auch mit UF Versuchen.
 
Zu deiner Frage:
Hier wären zwei Wege, die davon abhängen ob deine Listbox immer den kompletten Datensatz der Tabelle oder nur einer gefilterte Zusammenstellung zeigt.
 
Bei kompletten Daten ist ja dann die Zeile welche bearbeitet werden soll vom Listboxindex ableitbar.
Bei nur einer Auswahl in der Box, müsste dann als erstes bei Klick in die Listbox ein Vergleich mit der Tabelle gemacht werden um die Zeile zu ermitteln und zu merken.
 
Wie schaut dein Inhalt der Box aus?
Antworten Top
#6
Hi Uwe,
danke für Deine schnelle Antwort.

Ich habe mich nicht präzise genug ausgedrückt. Das Befüllen der TextBoxen ist nicht das Problem. 

Ich möchte nach dem Einlesen in die TextBoxen darin was ändern und auf "Speichern" drücken. Er soll dann den bearbeiteten Eintrag in entsprechender Zeile übernehmen.

(09.02.2023, 22:33)Elex schrieb: Ok. Ich kann die Überlegung/ Faszination UF schon nachvollziehen. Wie jeder der sich etwas mehr mit Excel beschäftigt habe ich auch viel Zeit in die UF Erprobung gesteckt. Was für mich aber zu der Erkenntnis geführt hat, alles was ich in UF‘s machen kann geht zu 99,9% auch im Zellbereich und dass wesentlich einfacher (auch Eingabemasken). Nicht desto trotz kannst du es auch mit UF Versuchen.
 
Zu deiner Frage:
Hier wären zwei Wege, die davon abhängen ob deine Listbox immer den kompletten Datensatz der Tabelle oder nur einer gefilterte Zusammenstellung zeigt.
 
Bei kompletten Daten ist ja dann die Zeile welche bearbeitet werden soll vom Listboxindex ableitbar.
Bei nur einer Auswahl in der Box, müsste dann als erstes bei Klick in die Listbox ein Vergleich mit der Tabelle gemacht werden um die Zeile zu ermitteln und zu merken.
 
Wie schaut dein Inhalt der Box aus?

Hallo Elex,

Ich befülle meine ListBox mit
Code:
Me.ListBox_Mitarbeiter.RowSource = "Mitarbeiter!A2:C50"

Auch noch eine Anfängerlösung, weil ich fix 50 Zeilen vorgebe. Eigentlich will ich nur so viel angezeigt bekommen wie es Zeilen in der Tabelle gibt

Ich habe gerade das Video gefunden, das eigentlich genau meinen Bedarf zeigt: https://www.youtube.com/watch?v=RwIMc5qZ0gE

Ich versuche das mal nachzubauen.
Antworten Top
#7
Schau mal:

https://www.snb-vba.eu/VBA_Userform_in_database_en.html
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
[-] Folgende(r) 1 Nutzer sagt Danke an snb für diesen Beitrag:
  • RubberBone
Antworten Top
#8
Danke, das klingt vielversprechend! Werde ich mir mal einziehen
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste