Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
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

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

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

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
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige