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 automatisches befüllen Textboxen

Listbox automatisches befüllen Textboxen
04.03.2023 10:32:38
Maik
Gute Tag,
ich habe mal eine Frage.
In einer Listbox stehen 10 Namen.
In den Eigenschaften der ListBox lasse ich den angeklickten Namen über ControlSource in die Tabelle Schreiben (Daten!A105)
In den Felder daneben und ein paar darunter lasse ich dann Eigenschaften zu den Nummern per Sverweis anzeigen.
Diese Daten hätte ich denn gerne wieder in den neben der Listbox eingefügten Textboxen eingetragen.
Die Daten dafür kommen aus mehreren Tabellenblättern dasewegen über den Sverweis
Zur Zeit clicke ich den Namen an.
Gehe dann auf einen CommandButton der mir die Daten in die Textfelder schreibt.
Private Sub CommandButton500_click()
Call Daten_schreiben
Set Image65.Picture = ShowPicture(Worksheets("Daten"), "Grafik 6")
End Sub
Private Sub Daten_schreiben()
TextBox501.Value = Range("Daten!A105")
TextBox502.Value = Range("Daten!A121")
TextBox503.Value = Range("Daten!A122")
TextBox504.Value = Range("Daten!B121")
TextBox505.Value = Range("Daten!B122")
TextBox506.Value = Range("Daten!B123")
TextBox507.Value = Range("Daten!B124")
End Sub

Das funktioniert soweit ganz ordentlich.
Was ich gerne hätte ist es den Button zu umgehen, also das durch das klicken des Namens gleich in den Textboxen geschrieben wird.
Das bekomme ich auch soweit hin nur klicke ich den Namen an erscheinen in den Textboxen die Daten des vorherigen Namens. Also hängen meine Textboxen immer ein Klick zurück.
Vielen Dank schon mal.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox automatisches befüllen Textboxen
04.03.2023 11:14:14
ralf_b
CommandButton500_click allein die 500 zeigt mir das du es irgendwo ein bissel übertrieben hast.
Was das Hinterherhinken angeht. Da hilft nur ein genauer Blick auf deine Umsetzung. VBA ist maßgeschneidert und Fehler in Abläufen findet man meist nur wenn man sich das Gesamtkonstrukt ansieht.
Wenn es sich aber um nur um einen Zeilenversatz handelt, liegt die Vermutung nahe das du ein Index Problem hast. Du weist schon Index 0 ist die erste Zeile in Controls usw. Aber im Tabellenblatt gibt es keine 0 te Zeile. Dort geht es bei 1 los.
AW: Listbox automatisches befüllen Textboxen
04.03.2023 12:41:22
Maik
Nein ich habe es nicht übertrieben :-)
Ich habe eine userform mit mehreren reitern und ich habe jeden Reiter eine Zahlen range zugewiesen.
Der 5te Reiter beginnt halt mit 500 für Textboxen, CommandButton usw.
Ist also der erste und einzige Button auf der Seite.
Also wenn ich die userform öffne und in der listbox einen Namen anklicke wird der ja in Daten!105 übertragen: Im gleichen zug ragieren ja die restlichen Felder durch den Sverweis und füllen die Zellen mit Leben. Wenn ich jetzt also den command button drücke werde auch die Daten richtig in die Felder der Userform übertragen.
Wie gesagt das funktioniert alles perfekt.
Ich wollte nur wissen was ich machen muss oder ob es überhaupt geht das ich beim anklicken eines Nutzers automatisch die Daten aus den Zellen meiner Tabelle in die Textfelder bekomme. Also ohne das Drücken des CommandButton500.
Anzeige
AW: Listbox automatisches befüllen Textboxen
04.03.2023 15:04:14
Alwin
Hallo Maik,
wenn ich es richtig verstandene habe willst du das die Werte aus den Zellen, welche mit Klick in die Listbox in die Zellen geschrieben werden in die Textboxen übergeben werden. Dann wäre es so mittels Change Ereignis im Modul des Tabellenblattes machbar. Die Userform ist ja eh geöffnet, so das ein Zurückschreiben so funktionieren sollte. Da keine Datei vorhanden ist dieser Code ungetestet.
Ins Modul des Tabelleblattes:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A105,A121:A122,B121:B124")) Is Nothing Then
        With UserForm1
            .TextBox501.Value = Range("Daten!A105")
            .TextBox502.Value = Range("Daten!A121")
            .TextBox503.Value = Range("Daten!A122")
            .TextBox504.Value = Range("Daten!B121")
            u.s.w.
        End With
    End If
End Sub
Du müsstest zwischen Userform und Textbox noch den Pfad durch die Multipage, den du leider nicht mitgeteilt hast, selbst nachtragen.
Falls du deiner Userform einen anderen Modulnamen verpasst hast muss du diesen ebenfalls entsprechend anpassen.
Gruß Uwe
Anzeige
AW: Listbox automatisches befüllen Textboxen
04.03.2023 18:33:30
Maik
Hab deins nicht ganz verstanden :-)
Ich habe eine Listbox in der ich einen Namen auswähle dieser Name wird mittels ControlSource über die Eigenschaften der Lsitbox in die Zeile Daten!A105 geschrieben.
Dann wird in anderen Zellen daneben und darunter mittels Sverweis Daten aus anderen Tabellenblätter geholt.
Diese Daten sollen wiederum in die Textboxen neben der Listbox angezeigt werden.
Das mache ich zur Zeit noch über den CommandButton500. Ich wähle also einen Wert aus meiner Listbox und klicke dann auf den Button. Der wiederum aktiviert "Daten_schreiben"
Mit dem "Set Image65.Picture = ShowPicture(Worksheets("Daten"), "Grafik 6")" hole ich dann das Bild des Nutzers.
Das funktioniert auch alles super. Nur frage ich mich ob es auch so gaht das ich den CommandButton500 umgehen kann. Also ein automatismus das wenn ich den Nutzer aus der Listbox wähle er gleich die Daten in die Textboxen Lädt ohne das ich nochmal einen Button klicken muss.
Private Sub CommandButton500_click()
Call Daten_schreiben
Set Image65.Picture = ShowPicture(Worksheets("Daten"), "Grafik 6")
End Sub
Private Sub Daten_schreiben()
TextBox501.Value = Range("Daten!A105")
TextBox502.Value = Range("Daten!A121")
TextBox503.Value = Range("Daten!A122")
TextBox504.Value = Range("Daten!B121")
TextBox505.Value = Range("Daten!B122")
TextBox506.Value = Range("Daten!B123")
TextBox507.Value = Range("Daten!B124")
End Sub
Wenn ich mir jetzt ein abfolge mache mit welche in der Listbox abläuft dann hängt er immer ein Klick hinter her.
Klicke ich Maik kommen die Wete von Sandra
Klicke ich jetzt Peter kommen die Daten von Maik
Klicke ich jetzt Paul kommen die Daten von Peter
Also immer ein Datensatz davor. In der ExcelTabelle selber steht immer der richtige wert Laden tut er wie gesagt immer eins aus der Vergangenheit.
Private Sub ListBox500_Click()
Call Daten_schreiben
Set Image65.Picture = ShowPicture(Worksheets("Daten"), "Grafik 6")
End Sub

Anzeige
AW: Listbox automatisches befüllen Textboxen
04.03.2023 20:12:39
Alwin
Hallo Maik,
- ist die Listbox in einer Userform oder als ActiveX Control auf dem Tabellenblatt.
- Welches der möglichen Ereignisse nutzt du, um den angeklickten Namen in der Listbox in die Zelle 105 des Tabellenblattes "Daten" zu übergeben.
Warum frage ich. Es existiert keine hochgeladene Datei von die als Beispieldatei. Ein Wert wird in die Tabelle geschrieben der Rest ist über Formeln berechnet. Es ist eher ein seltsamer Weg, der sich aber lösen lässt. Aus deiner Beschreibung lässt sich aber nicht mehr Brauchbares entnehmen.
Der einfachste Weg ist eine Beispieldatei, abgespeckt mit ein paar wenigen anonymisierten Daten hochzuladen.
Ist es dir zu viel Aufwand die Datei hochzuladen, dann teste mal noch die bisher nicht verwendeten Ereignisse der Listbox oder des Tabellenblattes.
Es gibt ein Event im Tabellenblatt namens_ Calculate. Das reagiert auf Berechnungsereignisse im Tabellenblatt.
Dann kann man die Ereignisse der Listbox wie _Change _Klick usw. auch zu Hilfe nehmen.
Ich hoffe einer meiner Tipps hilft dir weiter.
Gruß Uwe
Anzeige
AW: Listbox automatisches befüllen Textboxen
04.03.2023 21:29:05
Maik
Ja die Listbox und die Textboxen sind in einer Userform mit multpages..
Welches der möglichen Ereignisse nutzt du, um den angeklickten Namen in der Listbox in die Zelle 105 des Tabellenblattes "Daten" zu übergeben.
Ich schreibe die ausgewälten Nutzer über die Eigenschaften "Controlsource" in die Zelle "Daten!A105". Aber das meine uich schon erwähnt zu haben.
Ich versuche das mal in eine beispieldatei zu packen ist nur ein heiden aufwand das so neu zu erstellen. Ist halt einfach wenn man von seiner eigenen Datei redet. Da soll ein anderer erstmal durchsteigen. Da hast du recht. Bin dran und melde mich.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige