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

Combobox, Wert auslesen und Zeilennummer ausgeben

Forumthread: Combobox, Wert auslesen und Zeilennummer ausgeben

Combobox, Wert auslesen und Zeilennummer ausgeben
10.12.2007 18:12:00
Gerhard
Hallo ihr da...
Habe netterweise gestern folgenden Code erhalten:

Private Sub UserForm_Activate()
Dim inSpalte As Integer
For inSpalte = 1 To 10  '


Wie bringe ich jetzt im dieser Zeile ComboBox2.AddItem Cells(1, inSpalte) den RowIndex (hier ist er ja 1) dazu, das er in Combobox1 die Auswahl anschauen soll und dann die entsprechende Zeile (Tabellenblatt 2, Spalte A ) in der der Eintrag steht, ausgibt? Weil ich brauche ja wenn ich das richtig verstehe die Zeilennummer für RowIndex?
Greetz Gerhard

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Combobox, Wert auslesen und Zeilennummer ausgeben
11.12.2007 07:33:00
otto
Hi,
bis hierher werden nur die Werte in die ComboBox eingelesen, die Box an sich hat noch keinen Wert.
das müsste dann z.B. vor End Sub stehen:
ComboBox1 = Cells(ActiveCell.Row, inSpalte)
Gruß
otto
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

ComboBox in Excel: Werte auslesen und Zeilennummer ermitteln


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Füge ein UserForm hinzu: Klicke mit der rechten Maustaste im Projektfenster auf „Einfügen“ und wähle „UserForm“.

  3. Füge eine ComboBox hinzu: Ziehe eine ComboBox (ComboBox1) und eine zweite ComboBox (ComboBox2) auf das UserForm.

  4. Code für das UserForm einfügen: Doppelklicke auf das UserForm und füge den folgenden Code ein:

    Private Sub UserForm_Activate()
       Dim inSpalte As Integer
       For inSpalte = 1 To 10
           ComboBox2.AddItem Cells(1, inSpalte)
       Next inSpalte
    End Sub
    
    Private Sub ComboBox2_Click()
       Dim rowIndex As Integer
       rowIndex = Application.Match(ComboBox2.Value, Sheets("Tabelle2").Range("A:A"), 0)
       If Not IsError(rowIndex) Then
           ComboBox1 = Cells(rowIndex, 1)  ' Hier wird der Wert in ComboBox1 angezeigt
       End If
    End Sub
  5. Testen des UserForms: Schließe den VBA-Editor und starte das UserForm. Wähle einen Wert in ComboBox2 aus, um den entsprechenden Wert in ComboBox1 anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: ComboBox bleibt leer
    Lösung: Stelle sicher, dass der Code für das Hinzufügen von Items in der UserForm_Activate-Methode korrekt ist.

  • Fehler: Zeilennummer nicht gefunden
    Lösung: Überprüfe, ob der gesuchte Wert in der angegebenen Spalte vorhanden ist. Du kannst die Application.Match-Funktion verwenden, um den Zeilenindex zu ermitteln.


Alternative Methoden

Eine Alternative zur Verwendung von ComboBoxes ist die Verwendung von Data Validation. Du kannst eine Dropdown-Liste direkt in einer Excel-Zelle erstellen, die auf einer Liste basiert. Das geht so:

  1. Wähle die Zelle aus, in der du die Dropdown-Liste haben möchtest.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle „Liste“ und gebe die Quelle an, z. B. =Tabelle2!A1:A10.

Diese Methode ist einfacher, erfordert jedoch keine Programmierung.


Praktische Beispiele

Wenn du in der ersten ComboBox (ComboBox2) die Werte aus der ersten Zeile von Tabelle1 hast, wirst du beim Klicken auf einen Wert in ComboBox2 den entsprechenden Zeilenwert aus Tabelle2 in ComboBox1 sehen. Das ist besonders nützlich, wenn du Daten dynamisch auslesen möchtest.

Beispielcode für das Auslesen:

Private Sub ComboBox2_Click()
    Dim rowIndex As Integer
    rowIndex = Application.Match(ComboBox2.Value, Sheets("Tabelle2").Range("A:A"), 0)
    If Not IsError(rowIndex) Then
        MsgBox "Der Wert ist in Zeile: " & rowIndex
    End If
End Sub

Tipps für Profis

  • Verwende With-Anweisung: Um den Code leserlicher zu machen, kannst du die With-Anweisung verwenden, wenn du mehrere Eigenschaften eines Objekts setzt.

  • Fehlerbehandlung einbauen: Verwende On Error Resume Next, um zu verhindern, dass der Code bei einem Fehler stoppt, und informiere den Benutzer über mögliche Probleme.


FAQ: Häufige Fragen

1. Wie kann ich die Auswahl in der ComboBox speichern?
Du kannst den Wert der ComboBox in eine Zelle speichern, indem du Cells(1, 1).Value = ComboBox1.Value verwendest.

2. Was mache ich, wenn keine Übereinstimmung gefunden wird?
Verwende eine Fehlerüberprüfung mit If IsError(rowIndex) Then und informiere den Benutzer über die fehlende Übereinstimmung.

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