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

Forumthread: Combobox füllen Übergabe an Textbox

Combobox füllen Übergabe an Textbox
31.10.2004 13:57:50
Guido
Hallo und einen schönen Sonntag,
ich lade mit folgendem Code Werte in eine Combobox.

Private Sub UserForm_Initialize()
Worksheets("Kategorie").Activate
ActiveSheet.Unprotect ""
cboNamen.List = Worksheets("Kategorie").Range("A1").CurrentRegion.Value
cboNamen.ListIndex = 0
End Sub

Das funktioniert auch.
Leider schaffe ich es nicht den in der Combobox gewählten Wert an eine Textbox zu übergeben, zu editieren und an die ursprüngliche Stelle in der Spalte der Tabelle zurückzuschreiben.
Könnt Ihr mir helfen?
Dnke und Gruß
Guido
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Combobox füllen Übergabe an Textbox
31.10.2004 14:49:34
Nepumuk
Hallo Guido,
ein einfacher Beispielcode:


Option Explicit
Private Sub ComboBox1_Change()
    TextBox1.Text = ComboBox1.Text
End Sub
Private Sub CommandButton1_Click()
    With Worksheets("Tabelle1")
        .Cells(ComboBox1.ListIndex + 1, 1) = TextBox1.Text
    End With
    ComboBox1.List(ComboBox1.ListIndex) = TextBox1.Text
End Sub
Private Sub UserForm_Activate()
    With Worksheets("Tabelle1")
        ComboBox1.List() = .Range(.Cells(1, 1), .Cells(.Cells(1, 1).End(xlDown).Row, 1)).Value
    End With
End Sub


Gruß
Nepumuk
Anzeige
AW: Combobox füllen Übergabe an Textbox
fritzm
Hallo Guido,
anbei eine Lösung. Jedes Mal, wenn du ein Element auswählst, wird dieses auch in der Textbox "txtNamen" angezeigt. Nach einer Änderung in der Textbox UND dem Verlassen der Textbox wird der neue Wert in die ComboBox und in die Tabelle eingetragen.
Anbei der Code für ein UserForm:

Private Sub cboNamen_Change()
txtNamen.Value = cboNamen.Value
End Sub


Private Sub txtNamen_Exit(ByVal Cancel As MSForms.ReturnBoolean)
cboNamen.List(cboNamen.ListIndex) = txtNamen.Value
ActiveSheet.Cells(1 + cboNamen.ListIndex, 1).Value = txtNamen.Value
End Sub


Private Sub UserForm_Initialize()
Worksheets("Kategorie").Activate
With ActiveSheet
.Unprotect ""
cboNamen.List = .Range("A1").CurrentRegion.Value
cboNamen.ListIndex = 0
End With
End Sub

Anzeige
AW: Combobox füllen Übergabe an Textbox
Guido
Hallo Nepumuk, Hallo fritzm
danke für Eure Antworten und einen schönen Sonntag noch.
Gruß Guido
;

Forumthreads zu verwandten Themen

Anzeige
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

Combobox füllen und Wert an Textbox übergeben


Schritt-für-Schritt-Anleitung

  1. UserForm erstellen: Öffne den VBA-Editor (Alt + F11) und erstelle ein neues UserForm. Füge eine ComboBox (cboNamen) und eine TextBox (txtNamen) hinzu.

  2. Initialisierung der ComboBox: Füge folgenden Code in das UserForm ein, um die ComboBox beim Start mit Werten zu füllen:

    Private Sub UserForm_Initialize()
       Worksheets("Kategorie").Activate
       ActiveSheet.Unprotect ""
       cboNamen.List = Worksheets("Kategorie").Range("A1").CurrentRegion.Value
       cboNamen.ListIndex = 0
    End Sub
  3. Wert der ComboBox an die TextBox übergeben: Nutze den folgenden Code, um den ausgewählten Wert der ComboBox in die TextBox zu übertragen:

    Private Sub cboNamen_Change()
       txtNamen.Value = cboNamen.Value
    End Sub
  4. Änderungen speichern: Füge diesen Code hinzu, damit nach dem Verlassen der TextBox der neue Wert in die ComboBox und die Tabelle geschrieben wird:

    Private Sub txtNamen_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       cboNamen.List(cboNamen.ListIndex) = txtNamen.Value
       ActiveSheet.Cells(1 + cboNamen.ListIndex, 1).Value = txtNamen.Value
    End Sub

Häufige Fehler und Lösungen

  • Fehler: ComboBox bleibt leer
    Lösung: Stelle sicher, dass die Daten in der richtigen Tabelle (z.B. "Kategorie") vorhanden sind und die Range korrekt definiert ist.

  • Fehler: TextBox zeigt keinen Wert an
    Lösung: Überprüfe, ob der Change-Event der ComboBox korrekt verknüpft ist. Der Code sollte im UserForm und nicht in einem Modul stehen.


Alternative Methoden

  1. Verwendung von ListBox: Du kannst anstelle einer ComboBox auch eine ListBox verwenden, um mehrere Auswahlmöglichkeiten anzuzeigen. Die Logik bleibt ähnlich.

  2. Datenbindung: Ziehe in Betracht, Daten mit einem Datenbank- oder Excel-Tabellenansatz zu binden, um die Verwaltung von Daten zu optimieren.


Praktische Beispiele

Wenn du eine Liste von Kategorien in der Tabelle "Kategorie" hast, könnte dein UserForm wie folgt aussehen:

  • Kategorien:
    A1: "Kategorie 1"
    A2: "Kategorie 2"
    A3: "Kategorie 3"

Wenn der Benutzer "Kategorie 1" in der ComboBox auswählt, wird dieser Wert automatisch in der TextBox angezeigt, und Änderungen werden direkt in die Tabelle zurückgeschrieben.


Tipps für Profis

  • Nutze Datenvalidierung: Implementiere in deinen Excel-Tabellen Datenvalidierung, um sicherzustellen, dass die Eingaben in der TextBox gültig sind.

  • Error-Handling: Ergänze deinen Code mit Fehlerbehandlungsroutinen, um unerwartete Fehler elegant abzufangen und zu behandeln.


FAQ: Häufige Fragen

1. Wie kann ich die ComboBox mit Werten aus einer anderen Tabelle füllen?
Du kannst die Range in der UserForm_Initialize-Methode anpassen, um eine andere Tabelle zu referenzieren, z.B. Worksheets("AndereTabelle").Range("A1:A10").Value.

2. Warum wird der Wert in der TextBox nicht aktualisiert?
Überprüfe, ob der Change-Event der ComboBox korrekt implementiert ist und dass die ComboBox beim Ändern des Wertes nicht deaktiviert ist.

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