Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1908to1912
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

Userform - Textfeld Kombinationsfeld

Userform - Textfeld Kombinationsfeld
22.11.2022 11:40:34
Michael
Hallo!
Ralf hat mir heute schon dankenswerter Weise zurückgeschrieben, nur glaube ich, er überschätzt mein Wissen.
Wie soll der VBA Code lauten, wenn ich "du solltest das change oder click-event der Combobox nehmen um die Textboxen zu füllen." die Textboxen befüllen möchte?
Oder wie lautet der VBA Code, wenn ich mehrere Spalten in der Combobox anzeigen möchte?
ComboBoxName.List = shPersonal.ListObjects("tblPersonal").DataBodyRange.Value
ComboBoxName.ListIndex = 0
Ursprüngliche Frage:
Ich habe eine UserForm erstellt, mit der ich Daten von anderen Tabellen in der Tabelle "Daten" einfügen kann
Auf dieser UserForm habe ich unter anderem ein Kombinationsfeld und zwei TextBoxen erstellt.
Das Kombinationsfeld greift auf die Tabelle "Personal" Spalte A zu, wo man die Namen auswählen kann (was gut funktioniert).
Tabelle "Personal" = Spalte A Namen, Spalte B Team, Spalte C Ort
Jetzt zu meiner benötigten Hilfe:
Ich möchte, dass bei Auswahl des Namens im Kombinationsfeld aus der Tabelle "Personal Spalte A automatisch die dazugehörigen Daten aus der Spalte B in der Textbox "Team" und die Daten aus Spalte C in die TexBox "Ort" automatisch übernommen werden, damit der User diese nicht selbst ausfüllen muss.
Mein bisheriger Code:

Private Sub UserForm_Initialize()
'ID befüllen
TextBoxID.Value = WorksheetFunction.Max(shDaten.Columns(1)) + 1
'ComboBoxen befüllen
ComboBoxLeistung.List = shLeistungskatalog.ListObjects("tblLeistungskatalog").DataBodyRange.Value
ComboBoxLeistung.ListIndex = 0
ComboBoxName.List = shPersonal.ListObjects("tblPersonal").DataBodyRange.Value
ComboBoxName.ListIndex = 0
End Sub

Private Sub TextBoxTeam_Change()
End Sub

Private Sub TextBoxOrt_Change()
End Sub
Wäre toll, wenn Ihr mir helfen könntet. Danke im Voraus!
LG
Michael

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform - Textfeld Kombinationsfeld
22.11.2022 13:07:40
Rudi
Hallo,
geraten:

Option Explicit
Dim blnCODE As Boolean
Private Sub UserForm_Initialize()
blnCODE = True
'ID befüllen
TextBoxID.Value = WorksheetFunction.Max(shDaten.Columns(1)) + 1
'ComboBoxen befüllen
ComboBoxLeistung.List = shLeistungskatalog.ListObjects("tblLeistungskatalog").DataBodyRange.Value
ComboBoxLeistung.ListIndex = 0
ComboBoxName.List = shPersonal.ListObjects("tblPersonal").DataBodyRange.Value
ComboBoxName.ListIndex = 0
blnCODE = False
End Sub
Private Sub ComboBoxName_Change()
If Not blnCODE Then
TextBoxTeam = ComboBoxName.Column(1)
TextBoxOrt = ComboBoxName.Column(2)
End If
End Sub
Gruß
Rudi
Anzeige
AW: Userform - Textfeld Kombinationsfeld
22.11.2022 13:38:03
Michael
Hallo Rudi!
Vielen herzlichen Dank. Hab zwar noch einige Zeit gebraucht, aber dann habe ich es mit deiner Hilfe geschafft!
Danke vielmals!
LG
Michael
AW: Userform - Textfeld Kombinationsfeld
23.11.2022 12:46:15
Michael
Hallo Rudi!
Hab jetzt versucht, mit deinen Code auch die UserFormBearbeiten zu programmieren. Lässt sich aufrufen, die Felder sind auch befüllt und manuell lassen sich die Daten verändern und speichern.
Nur das automatische befüllen der beiden TextBoxen geht wieder nicht. Irgendwo habe ich noch einen Denkfehler:
Option Explicit
Private p_aktuelleZeile As Long
Public Property Let aktuelleZeile(ByVal neueAktuelleZeile As Long)
p_aktuelleZeile = neueAktuelleZeile
End Property

Private Sub ButtonSpeichern_Click()
'Prüfung ob alle Felder befüllt sind
If TextBoxDatum.Value = "" Or TextBoxAnzahl.Value = "" Then
MsgBox "Bitte fülle alle Felder aus.", , ""
Exit Sub
End If
'Daten ins Tabellenblatt übernehmen
With shDaten
.Cells(p_aktuelleZeile, 1).Value = TextBoxID.Value
.Cells(p_aktuelleZeile, 2).Value = TextBoxDatum.Value
.Cells(p_aktuelleZeile, 3).Value = ComboBoxLeistung.Value
.Cells(p_aktuelleZeile, 4).Value = TextBoxAnzahl.Value
.Cells(p_aktuelleZeile, 5).Value = TextBoxReferent.Value
.Cells(p_aktuelleZeile, 6).Value = ComboBoxKürzel.Value
.Cells(p_aktuelleZeile, 7).Value = TextBoxTeam.Value
.Cells(p_aktuelleZeile, 8).Value = TextBoxDienstort.Value
End With
'UserForm schließen
Unload Me
End Sub

Private Sub UserForm_Activate()
'ComboBoxen befüllen
ComboBoxLeistung.List = shLeistungskatalog.ListObjects("tblLeistungskatalog").DataBodyRange.Value
Dim blnCODE As Boolean
blnCODE = True
ComboBoxKürzel.List = shPersonal.ListObjects("tblPersonal").DataBodyRange.Value
ComboBoxKürzel.ListIndex = 0
blnCODE = False
If Not blnCODE Then
TextBoxReferent = ComboBoxKürzel.Column(1)
TextBoxTeam = ComboBoxKürzel.Column(2)
TextBoxDienstort = ComboBoxKürzel.Column(3)
End If
'Daten laden
With shDaten
TextBoxID.Value = .Cells(p_aktuelleZeile, 1).Value
TextBoxDatum.Value = .Cells(p_aktuelleZeile, 2).Value
ComboBoxLeistung.Value = .Cells(p_aktuelleZeile, 3).Value
TextBoxAnzahl.Value = .Cells(p_aktuelleZeile, 4).Value
TextBoxReferent.Value = .Cells(p_aktuelleZeile, 5).Value
ComboBoxKürzel.Value = .Cells(p_aktuelleZeile, 6).Value
TextBoxTeam.Value = .Cells(p_aktuelleZeile, 7).Value
TextBoxDienstort.Value = .Cells(p_aktuelleZeile, 8).Value
End With
End Sub
Vielleicht kannst du nochmal drüberschauen und den Fehler ausbessern.
LG
Michael
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige