VBA picklist formatierung?

... komplette Frage anzeigen

2 Antworten

Es geht um die Datenüberprüfung > Liste aka Picklist oder Dropdown, richtig?

Sind die 30 Auswahlwerte in der Tabelle irgendwo hinterlegt oder nur direkt in der Datenüberprüfung? In ersterem Fall könnte man in dieser Liste die entsprechende Formatierung hinterlegen und per VBA übertragen.


Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von qwertz6561
22.09.2016, 11:24

In einem anderen Tabellenblatt hinterlegt. 

Also z.B. Tabellenblatt "Pick List" und da die Range C2 bis C32

Und "Tabelle1" wäre dann die Spalte D wo die Datenüberprüfung > Liste stattfindet

0
Kommentar von qwertz6561
23.09.2016, 10:58

Hat endlich geklappt :D

Ich habe bei 



Target.Font.Color = Sheets("pick lists").Cells(WorksheetFunction.Match(Target.Value, Sheets("Pick List").Range("C2:C32"), 0), 12).Font.Color



vergessen, weil von dort soll ja die Formatierung auf das Target angewendet werden. Man bin ich blöd :D Vielen dank nino

Hab dir den Stern gegeben :)

0

Ich hoffe, der Code überlebt die Formatierung hier. :)
Die Werte für Range "C4:N33" und die Bedingungen musst du natürlich ersetzen.

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim rngC As Range
   If Not Intersect(Target, Range("C4:N33")) Is Nothing Then
      For Each rngC In Range("C4:N33")
         Select Case True
            Case Not IsNumeric(rngC.Value) Or Trim(rngC.Value) = ""
               rngC.Interior.ColorIndex = xlColorIndexNone  'keine Färbung
            Case rngC.Value < 50 And rngC.Value <= rngC.Offset(, -1).Value
               rngC.Interior.ColorIndex = 3 'rot
            Case rngC.Value < 50 And rngC.Value > rngC.Offset(, -1).Value
               rngC.Interior.ColorIndex = 45 'orange
            Case rngC.Value >= 50 And rngC.Value <= rngC.Offset(, -1).Value
               rngC.Interior.ColorIndex = 4 'grün
            Case rngC.Value >= 50 And rngC.Value > rngC.Offset(, -1).Value
               rngC.Interior.ColorIndex = 10 'dunkelgrün
         End Select
      Next
   End If
End Sub

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von qwertz6561
22.09.2016, 09:45

rngC = Range wo ich meine Werte auswähle und welche dann überprüft wird und so formatiert wird wie ich es möchte, wenn ich es verstehe?

Und unten die Bedingungen.

Eine Frage, die PickList Werte habe ich in einem anderen Tabellen blatt, sagen wir mal sheets("Pick List").Range("c2:c32"). Und die haben eine bestimmte Formatierung. Genauso bezieht sich "rngC" auf diese Liste, aber übernimmt die Formatierung nicht. (Ohne Vba also einfach mit Bordmitteln also "Datenüberprüfung mit Bezug auf Liste".

Gibt es eine Methode im Sinne "von wenn Wert 1 aus referenzierte Pick list" dann soll er den Wert aus der anderen Liste pasten (denglisch lol) mit den Formaten also vielleicht irgendwas mit dieses xlpasteformats. Wie gesagt kenne mich jetzt nicht so gut aus.

0

Was möchtest Du wissen?