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

Forumthread: Dropdown Wert auslesen

Dropdown Wert auslesen
15.10.2014 09:28:29
FAFR
Hallo,
ich soll für einen Freund eine Übersicht über eine Liste erstellen.
Die Liste hat für einzelne Punkte ein Dropdown Menü mit den Kriterien grün, gelb, rot, nicht relevant.
Diese Farben stehen als Text im Menü und die Farbe ändert sich bei der Auswahl.
Wenn die Farbe rot oder gelb in der Zelle ist, soll die ganze Zeile in das Tabellenblatt Übersicht kopiert werden. Ich schaff es leider nicht den Wert aus dem Dropdown Menü auszulesen. Kann mir bitte Jemand helfen?
Mein aktueller Code lautet:

Sub MakroUebersicht()
Dim Zelle As Range
Dim i As Long 'i = Zeile
i = 4
For Each Zelle In Sheets("RG2 (Vergabe)").Range("G" & i, "G999")
If Sheets("RG2 (Vergabe)").DrawingObjects("Dropdown 618").Text = "rot" or DrawingObjects(" _
Dropdown 618").Text = "gelb" Then
'wenn die Zelle die Farbe rot oder gelb trägt,
Sheets("RG2 (Vergabe)").Range("A" & i - 1, "N" & i).Copy 'wird die jeweilige Zelle kopiert
With Sheets("Übersicht")
leereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
leereZeile = WorksheetFunction.Max(5, leereZeile)
.Cells(leereZeile, 1).PasteSpecial
'fügt die kopierte Zeile in die letzte leere Zeile des Tabellenblattes Übersicht ein
End With
Rows(i).Select
Rows(i).EntireRow.AutoFit
i = i + 1
End If
Next
End Sub

Es kommt immer der Laufzeitfehler 1004 "Die DrawingObjects-Eigenschaft des Worksheet Objektes kann nicht zugeordnet werden" Was mach ich falsch?
Danke
Gruß
Franzi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Dropdown Wert auslesen
15.10.2014 11:46:06
fcs
Hallo Franzi,
das DropDown-Steuerelement kannst du wie folgt auswerten.
Du müsstest jetzt aber irgendwie die einzelnen Zellen in Spalte G prüfen (Inhalt, Farbe oder sonst etwas), wenn du nur bestimmte Zeilen in die Übersicht kopieren willst. Im Moment kopiert dein Makro auch nich jede Zeile zwei mal bedingt durch die - 1 in
Sheets("RG2 (Vergabe)").RRange("A" & i - 1, "N" & i).Copy
Gruß
Franz
Sub MakroUebersicht()
Dim Zelle As Range
Dim i As Long 'i = Zeile
Dim leereZeile As Long
Dim wert, wert2
i = 4
For Each Zelle In Sheets("RG2 (Vergabe)").Range("G" & i, "G999")
With Sheets("RG2 (Vergabe)").Shapes("Dropdown 618").ControlFormat
wert = .Value 'Indexwert des ausgewählten Listenwertes
wert2 = .List(.Value) 'ausgewählter Listenwert
End With
If wert2 = "rot" Or wert2 = "gelb" Then
'wenn die Zelle die Farbe rot oder gelb trägt,
Sheets("RG2 (Vergabe)").Range("A" & i - 1, "N" & i).Copy 'wird die jeweilige Zelle  _
kopiert
With Sheets("Übersicht")
leereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
leereZeile = WorksheetFunction.Max(5, leereZeile)
.Cells(leereZeile, 1).PasteSpecial
'fügt die kopierte Zeile in die letzte leere Zeile des Tabellenblattes Übersicht ein
End With
Rows(i).Select
Rows(i).EntireRow.AutoFit
i = i + 1
End If
Next
End Sub

Anzeige
AW: Dropdown Wert auslesen
15.10.2014 12:46:08
FAFR
Hallo Franz,
Danke es hat mir schon ein bisschen weiter geholfen.
Leider kommt immernoch der Laufzeitfehler 1004 "Die Value-Eigenschaft des DropDown-Objektes kann nicht zugeordnet werden."
Ich habe mich vorhin ein bisschen falsch ausgedrückt. Es sind pro DropDown Menü zwei Zeilen die kopiert werden müssen. Deshalb -1
Gruß Franzi

Anzeige
AW: Dropdown Wert auslesen
15.10.2014 14:57:51
fcs
Hallo Franzi,
eine Möglichkeit, warum der Fehler noch auftreten kann: In dem DropDown wurde noch kein Eintrag gewählt.
Ich hab das Makro mit einer entsprechenden Prüfung und Meldung versehen.
Zusätzliche Anpassungen:
- letzte zu prüfende/kopierende Zeile wird variabel gesucht.
- Bildschirmaktualiiserung wird während der Makroausführung deaktiviert.
Gruß
Franz
Sub MakroUebersicht()
Dim Zelle As Range
Dim i As Long 'i = Zeile
Dim leereZeile As Long, oShape As Shape
Dim wert, wert2
i = 4
With Sheets("RG2 (Vergabe)")
Application.ScreenUpdating = False
For Each Zelle In .Range(.Cells(i, 7), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 6))
Set oShape = .Shapes("Dropdown 618")
With oShape.ControlFormat
wert = .Value 'Indexwert des ausgewählten Listenwertes
If .ListIndex = 0 Then
MsgBox "Kein Wert ausgewählt in """ & oShape.Name & """!"
GoTo Beenden
Else
wert2 = .List(.Value) 'ausgewählter Listenwert
End If
End With
If wert2 = "rot" Or wert2 = "gelb" Then
'wenn die Zelle die Farbe rot oder gelb trägt,
.Range("A" & i - 1, "N" & i).Copy 'wird die jeweilige Zelle kopiert
With Sheets("Übersicht")
leereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
leereZeile = WorksheetFunction.Max(5, leereZeile)
.Cells(leereZeile, 1).PasteSpecial
'fügt die kopierte Zeile in die letzte leere Zeile des Tabellenblattes Übersicht  _
ein
End With
Rows(i).Select
Rows(i).EntireRow.AutoFit
i = i + 1
End If
Next
End With
Beenden:
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Dropdown Wert auslesen
16.10.2014 09:29:42
FAFR
Hallo Franz,
danke für deine Mühen, leider erscheint der Fehler immernoch in folgender Zeile
wert = .Value 'Indexwert des ausgewählten Listenwertes
Im DropDown Menü ist ein Eintrag gewählt.
Gruß Franzi

AW: Dropdown Wert auslesen
16.10.2014 09:32:19
FAFR
Hallo Franz,
ich habe ganz vergessen die Punkte wegzulassen (: so weit funktionierts (:
Das einzige Problem das ich noch habe ist, dass ein Wert im DropDown gewählt ist, das Programm mir aber sagt, dass keines gewählt ist.
Gruß Franzi

Anzeige
AW: Dropdown Wert auslesen
16.10.2014 13:27:34
fcs
Hallo Franzi,
ohne eine abgespeckte/anonymiserte Beispieldatei, in der der Fehler auftritt, kann ich hier nicht weiterhelfen.
Gruß
Franz
;

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 Wert auslesen in Excel


Schritt-für-Schritt-Anleitung

Um den Wert aus einem Dropdown-Menü in Excel auszulesen und basierend auf diesem Wert bestimmte Zeilen zu kopieren, kannst du das folgende VBA-Makro verwenden. Achte darauf, dass du die richtige Excel-Version verwendest, die VBA unterstützt.

  1. Öffne Excel und gehe zu "Entwicklertools".
  2. Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
  3. Füge ein neues Modul hinzu und kopiere den folgenden Code:
Sub MakroUebersicht()
    Dim Zelle As Range
    Dim i As Long 'i = Zeile
    Dim leereZeile As Long, oShape As Shape
    Dim wert, wert2
    i = 4
    With Sheets("RG2 (Vergabe)")
        Application.ScreenUpdating = False
        For Each Zelle In .Range(.Cells(i, 7), .Cells(.Rows.Count, 1).End(xlUp).Offset(0, 6))
            Set oShape = .Shapes("Dropdown 618")
            With oShape.ControlFormat
                wert = .Value 'Indexwert des ausgewählten Listenwertes
                If .ListIndex = 0 Then
                    MsgBox "Kein Wert ausgewählt in """ & oShape.Name & """!"
                    GoTo Beenden
                Else
                    wert2 = .List(.Value) 'ausgewählter Listenwert
                End If
            End With
            If wert2 = "rot" Or wert2 = "gelb" Then
                .Range("A" & i - 1, "N" & i).Copy
                With Sheets("Übersicht")
                    leereZeile = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                    leereZeile = WorksheetFunction.Max(5, leereZeile)
                    .Cells(leereZeile, 1).PasteSpecial
                End With
                Rows(i).Select
                Rows(i).EntireRow.AutoFit
                i = i + 1
            End If
        Next
    End With
Beenden:
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub
  1. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  1. Laufzeitfehler 1004: "Die Value-Eigenschaft des DropDown-Objektes kann nicht zugeordnet werden."

    • Ursache: Es wurde kein Eintrag im Dropdown ausgewählt.
    • Lösung: Stelle sicher, dass ein Eintrag im Dropdown-Menü gewählt ist, bevor du das Makro ausführst.
  2. Wert wird nicht korrekt aus dem Dropdown ausgelesen.

    • Ursache: Möglicherweise hast du die Punkte in der Dropdown-Definition vergessen.
    • Lösung: Überprüfe die Logik im Makro und entferne unnötige Punkte oder Anpassungen.

Alternative Methoden

Wenn du den Wert aus dem Dropdown-Menü nicht mittels VBA auslesen möchtest, kannst du auch die Funktion WENN in Kombination mit INDEX und VERGLEICH verwenden. Diese Methode ist jedoch nicht so flexibel und erfordert manuelle Anpassungen.


Praktische Beispiele

Angenommen, du hast eine Liste von Aufgaben in Spalte A, und in Spalte G hast du das Dropdown-Menü mit den Farben. Hier ein Beispiel, wie du die Werte auslesen und in das Tabellenblatt „Übersicht“ kopieren kannst:

  1. Aufgabe: "Projekt A" mit Dropdown-Wert "rot" in Zelle G4.
  2. Ergebnis: Die gesamte Zeile von „Projekt A“ wird in das Blatt „Übersicht“ kopiert.

Tipps für Profis

  • Nutze die Application.ScreenUpdating = False-Anweisung, um die Bildschirmaktualisierung während der Ausführung des Makros zu deaktivieren. Das verbessert die Performance, besonders bei großen Datenmengen.
  • Setze On Error Resume Next, um Laufzeitfehler zu ignorieren, aber sei vorsichtig, da dies auch unerwartete Ergebnisse liefern kann.

FAQ: Häufige Fragen

1. Wie kann ich den Wert aus dem Dropdown in einer Zelle direkt anzeigen? Du kannst die Funktion =INDIREKT() verwenden, um den Wert aus dem Dropdown in einer Zelle anzuzeigen.

2. Was kann ich tun, wenn mein Dropdown nicht richtig funktioniert? Überprüfe die Datenquelle des Dropdowns und stelle sicher, dass die Liste korrekt formatiert ist. Manchmal hilft es, das Dropdown neu zu erstellen.

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