Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Userform Textfeld abhängig von Combobox

Userform Textfeld abhängig von Combobox
18.09.2008 15:34:25
Combobox
Hallo Experten,
brauche heute wieder Eure Hilfe bei einer Userform. Bernie hat mir gestern schon toll geholfen, doch beim hinzufügen einer Textbox bzw. wie diese zu Füllen ist, komme ich nicht weiter. In der Userform gibt es 2 abhängige Comboboxen, wenn die gefüllt sind, soll die Textbox mit dem entsprechenden Wert aus der Tabelle gefüllt werden. Wie muss der Code geändert werden?
https://www.herber.de/bbs/user/55497.xls
Der Code bisher:

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
End Sub



Private Sub ComboBox2_Change()
ComboBox1.ListIndex = ComboBox2.ListIndex
End Sub



Private Sub UserForm_Initialize()
Dim r As Integer
Dim i As Integer
With Sheets("Tabelle2")
r = .Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.RowSource = .Range("A2:A" & r).Address(External:=True)
r = .Cells(Rows.Count, 1).End(xlUp).Row
ComboBox2.RowSource = .Range("B2:B" & r).Address(External:=True)
'Codezeile von mir reingebastelt, produziert Laufzeitfehler
r=.Cells(Rows.Count, 1).End(xlUp).Row
TextBox1.RowSource = .Range("C2:C" & r).Address(External:=True)
End With
End Sub


Danke für Eure Hilfe
Gruss
Bernhard

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Userform Textfeld abhängig von Combobox
18.09.2008 15:46:42
Combobox
Hallo,
meinst Du so?:

Private Sub ComboBox1_Change()
ComboBox2.ListIndex = ComboBox1.ListIndex
TextBox1.Text = ComboBox1.Value
End Sub
Private Sub ComboBox2_Change()
ComboBox1.ListIndex = ComboBox2.ListIndex
TextBox1.Text = TextBox1.Text & " - " & ComboBox2.Value
End Sub


Grüße
Hoffi

Anzeige
AW: Userform Textfeld abhängig von Combobox
18.09.2008 16:05:00
Combobox
Hallo Hoffi,
Deine Lösung ist noch nicht ganz das, was ich gesucht habe. Vielleicht habe ich mich auch ungenau ausgedrückt. In der Textbox soll der entsprechende Wert aus der 3.Spalte stehen.
Also:
ArtNr. ArtBez. Futter
56789 Katze Fuss
Kannst Du den Code ändern? Wäre nett. Danke.
Gruss
Bernhard
Anzeige
AW: Userform Textfeld abhängig von Combobox
18.09.2008 20:38:35
Combobox
Hallo liebe Experten,
jetzt habe ich das Archiv schon 1 Stunde durchsucht, aber noch keine Lösung gefunden für die Erweiterung der Userform. Wie muss ich die Textbox ansprechen, damit die Textbox mit den Ausführungsvarianten gefüllt wird?
Seht euch bitte nochmals das Beispiel an. Danke im vorraus.
https://www.herber.de/bbs/user/55509.xls
Gruss
Bernhard
Anzeige
AW: Userform Textfeld abhängig von Combobox
18.09.2008 22:59:00
Combobox
Hallo Jens,
herzlichen Dank!!! Das ist es was ich gesucht habe! Jetzt kann ich morgen an meinem Projekt weiter stopseln :-)
Werde sicher noch öfter die Hilfe dieses (besten Forums) brauchen!
Also, nochmals Danke und Gruss aus der Schweiz ins Sauerland
Bernhard
Anzeige
gern geschehen (oT)
19.09.2008 01:19:00
Jens
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform: Textfeld abhängig von Comboboxen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und erstelle eine neue Userform. Füge zwei Comboboxen (ComboBox1 und ComboBox2) sowie ein Textfeld (TextBox1) hinzu.

  2. Datenquelle festlegen: Stelle sicher, dass Du eine Tabelle mit den benötigten Daten hast. Zum Beispiel:

    ArtNr.    ArtBez.    Futter
    56789     Katze      Fuss
  3. Code für die Comboboxen: Verwende den folgenden VBA-Code, um die Comboboxen zu verknüpfen und die Textbox entsprechend zu füllen.

    Private Sub ComboBox1_Change()
       ComboBox2.ListIndex = ComboBox1.ListIndex
       TextBox1.Text = Sheets("Tabelle2").Cells(ComboBox1.ListIndex + 2, 3).Value
    End Sub
    
    Private Sub ComboBox2_Change()
       ComboBox1.ListIndex = ComboBox2.ListIndex
       TextBox1.Text = Sheets("Tabelle2").Cells(ComboBox2.ListIndex + 2, 3).Value
    End Sub
    
    Private Sub UserForm_Initialize()
       Dim r As Integer
       With Sheets("Tabelle2")
           r = .Cells(Rows.Count, 1).End(xlUp).Row
           ComboBox1.RowSource = .Range("A2:A" & r).Address(External:=True)
           ComboBox2.RowSource = .Range("B2:B" & r).Address(External:=True)
       End With
    End Sub
  4. Testen: Starte die Userform und teste die Funktionalität. Wenn Du eine Auswahl in der ersten Combobox triffst, sollte die zweite Combobox aktualisiert werden und das Textfeld die entsprechenden Werte anzeigen.


Häufige Fehler und Lösungen

  • Laufzeitfehler beim Füllen der Textbox: Stelle sicher, dass der Index der Comboboxen korrekt ist und dass die Daten in der dritten Spalte vorhanden sind. Verwende ComboBox1.ListIndex + 2 für die Zeilenreferenz, um die korrekten Daten abzurufen.

  • Comboboxen zeigen keine Daten: Überprüfe den RowSource-Pfad und stelle sicher, dass die Daten in der Tabelle vorhanden sind.


Alternative Methoden

Eine alternative Methode, um die Werte in der Textbox anzuzeigen, besteht darin, die Werte direkt aus den Comboboxen zu ziehen und nicht auf die Tabelle zuzugreifen. Dies könnte die Performance verbessern, wenn die Daten nicht sehr umfangreich sind.

Private Sub ComboBox1_Change()
    TextBox1.Text = ComboBox1.Value & " - " & ComboBox2.Value
End Sub

Praktische Beispiele

Angenommen, Du hast die folgende Tabelle in Tabelle2:

ArtNr. ArtBez. Futter
56789 Katze Fuss
12345 Hund Knochen

Wenn Du ComboBox1 auf 56789 und ComboBox2 auf Katze setzt, sollte TextBox1 den Wert Fuss anzeigen, basierend auf der dritten Spalte.


Tipps für Profis

  • Datenvalidierung: Nutze Data Validation in Excel, um sicherzustellen, dass die Benutzer nur gültige Einträge in die Comboboxen eingeben.
  • Fehlerbehandlung: Implementiere On Error Resume Next im VBA-Code, um Laufzeitfehler besser zu handhaben und den Benutzer über Probleme zu informieren.
  • Design der Userform: Achte darauf, die Userform benutzerfreundlich zu gestalten, indem Du klare Beschriftungen und Anweisungen hinzufügst.

FAQ: Häufige Fragen

1. Wie kann ich die Comboboxen mit einer externen Datenquelle füllen?
Du kannst die RowSource-Eigenschaft der Comboboxen auf einen externen Datenbereich setzen, indem Du den Pfad zur Datenquelle angibst.

2. Was mache ich, wenn die Textbox leer bleibt?
Überprüfe die Indizes der Comboboxen und stelle sicher, dass die entsprechenden Werte in der Tabelle vorhanden sind. Debugge den Code, um den Wert zu überprüfen, der in die Textbox geschrieben werden soll.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige