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

Forumthread: DropDown Index mit VBA auslesen

DropDown Index mit VBA auslesen
18.12.2018 15:37:20
Christian
Servus meine lieben Profis,
ich möchte folgendes erreichen:
Auf einem Tabellenblatt habe ich eine Dropdown-Liste erzeugt in der man ein anzuzeigendes Projekt auswählen kann. Um die Ausblendung der anderen Projekten nicht vom Projektnamen abhängig zu machen möchte ich auf diese Werte über den Index der Dropdown-Liste zugreifen.
Deshalb bitte ich euch dabei um Hilfe, da ich erst seit einer Woche mit VBA arbeite und viele Funktionen nicht kenne. Ich habe bereits danach gesucht, jedoch nichts brauchbares gefunden.
Danke schon mal im voraus
Gruß
Christian
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: DropDown Index mit VBA auslesen
18.12.2018 15:59:03
Rudi
Hallo,
was für eine Dropdown-Liste?
Kombinationsfeld
Combobox
Gültigkeitsliste
?
Gruß
Rudi
AW: DropDown Index mit VBA auslesen
19.12.2018 06:59:56
Christian
Morgen Rudi,
da bin ich leider etwas überfragt :D
Ich habe einfach in ein Feld geklickt dann über Daten - Datenüberprüfung in ein Fenster gekommen, dann unter Gültigkeitskriterien - Zulassen: habe ich Liste gewählt und dann die Quelle angegeben.
Ich hoffe das Problem wurde klarer.
Gruß
Christian
Anzeige
AW: DropDown Index mit VBA auslesen
19.12.2018 08:47:06
UweD
Hallo
so?
Beispiel für A1 mit Datenüberprüfung
Sub Makro1()
    Dim Zelle As Range, varAsw As Variant, intIndex As Integer, RNG As Range
    
    Set Zelle = Range("A1")
    Set RNG = Range(Zelle.Validation.Formula1)
    varAsw = Zelle.Value
    
    intIndex = WorksheetFunction.Match(varAsw, RNG)
    MsgBox "Es wurde der " & intIndex & ". Wert ausgewählt!"
End Sub

LG UweD
Anzeige
AW: DropDown Index mit VBA auslesen
19.12.2018 10:10:02
Christian
Morgen Uwe,
Dein Makro hat leider nicht ganz funktioniert. Wenn ich das erste Element auswähle und das Makro starte gibt er mit eine 7 als Index. Wähle ich das zweite Element aus erhalte ich immer noch die 7. Und manchmal erhalte ich den Laufzeitfehler '1004'.
Ich habe die Beispielsmappe hochgeladen falls das hilft:
https://www.herber.de/bbs/user/126205.xlsm
Gruß
Christian
Anzeige
AW: DropDown Index mit VBA auslesen
19.12.2018 11:46:35
Christian
Ich habe den Fehler gefunden. Ich habe bei der Match-Funktion den optionalen Parameter mit 0 verwendet und jetzt klappt es wie gewünscht!
Mal wieder danke ich dir Uwe!!
Mit freundlichem Gruß
Christian K
AW: DropDown Index mit VBA auslesen
19.12.2018 13:27:03
Christian
Ich habe den Fehler gefunden. Ich habe bei der Match-Funktion den optionalen Parameter mit 0 verwendet und jetzt klappt es wie gewünscht!
Mal wieder danke ich dir Uwe!!
Mit freundlichem Gruß
Christian K
Anzeige
;

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

DropDown Index mit VBA auslesen


Schritt-für-Schritt-Anleitung

  1. Erstelle eine Dropdown-Liste:

    • Wähle die Zelle aus, in der die Dropdown-Liste erscheinen soll.
    • Gehe zu Daten > Datenüberprüfung.
    • Wähle unter Zulassen die Option Liste und gib die Quelle für die Dropdown-Werte an.
  2. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  3. Ein neues Modul erstellen:

    • Klicke mit der rechten Maustaste auf VBAProject (deine Arbeitsmappe) und wähle Einfügen > Modul.
  4. VBA-Code eingeben:

    • Füge folgenden Code in das Modul ein:
    Sub Makro1()
        Dim Zelle As Range, varAsw As Variant, intIndex As Integer, RNG As Range
    
        Set Zelle = Range("A1") ' Ändere "A1" auf die Zelle deiner Dropdown
        Set RNG = Range(Zelle.Validation.Formula1)
        varAsw = Zelle.Value
    
        intIndex = WorksheetFunction.Match(varAsw, RNG, 0) ' 0 für exakte Übereinstimmung
        MsgBox "Es wurde der " & intIndex & ". Wert ausgewählt!"
    End Sub
  5. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu Excel zurück.
    • Führe das Makro aus, um den Index des ausgewählten Wertes zu erhalten.

Häufige Fehler und Lösungen

  • Problem: Laufzeitfehler '1004'.

    • Lösung: Überprüfe, ob die Zelle, die die Dropdown-Liste enthält, korrekt referenziert ist und dass die Datenüberprüfung richtig eingerichtet wurde.
  • Problem: Falscher Indexwert wird zurückgegeben.

    • Lösung: Stelle sicher, dass der optionale Parameter der Match-Funktion auf 0 gesetzt ist, um eine exakte Übereinstimmung zu gewährleisten.

Alternative Methoden

  • Verwendung von ComboBox: Du kannst auch eine ComboBox verwenden, wenn du eine benutzerfreundlichere Dropdown-Liste benötigst. Diese kann über die Entwicklertools in Excel hinzugefügt werden.

  • Datenüberprüfung über VBA: Du kannst auch die Datenüberprüfung direkt über VBA erstellen, um eine Dropdown-Liste programmgesteuert zu generieren:

    With Range("A1").Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="Wert1,Wert2,Wert3"
    End With

Praktische Beispiele

  1. Projektwahl: Wenn du eine Liste von Projekten hast und den Index des ausgewählten Projekts auslesen möchtest, kannst du den oben beschriebenen VBA-Code verwenden, um den aktuellen ausgewählten Index zu ermitteln.

  2. Dynamische Dropdown-Liste: Wenn du eine Dropdown-Liste hast, die aus einer Tabelle generiert wird, kannst du die RNG-Variable so anpassen, dass sie auf die Tabelle verweist:

    Set RNG = Sheets("Tabelle1").Range("A1:A10") ' Beispiel für eine Tabelle

Tipps für Profis

  • Verwende Named Ranges: Es kann hilfreich sein, benannte Bereiche in Excel zu verwenden, um die Verwaltung von Dropdown-Listen und deren Indizes zu erleichtern.

  • Fehlerbehandlung in VBA: Implementiere Fehlerbehandlungsroutinen in deinem VBA-Code, um unerwartete Fehler elegant zu handhaben.

  • Dokumentation: Dokumentiere deinen Code gut, um später zu verstehen, was jeder Teil des Codes bewirken soll.


FAQ: Häufige Fragen

1. Wie kann ich den Wert aus der Dropdown-Liste in eine andere Zelle schreiben?
Du kannst einfach den Wert der Dropdown-Zelle in eine andere Zelle kopieren, indem du Range("B1").Value = Zelle.Value hinzufügst.

2. Funktioniert dieser Code auch in Excel Online?
Leider kann VBA nicht in Excel Online verwendet werden. Der Code funktioniert nur in der Desktop-Version von Excel.

3. Wie kann ich mehrere Dropdown-Listen synchronisieren?
Du kannst den Code anpassen, um auf mehrere Zellen zuzugreifen und deren Werte zu vergleichen oder zu synchronisieren, je nach Bedarf.

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