Clever-Excel-Forum

Normale Version: Dropdown für Hintergrundfarbe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5
Evtl ist das ja was, wobei man die jetzt relevanten Zellen nicht sichtbar irgendwo außerhalb deiner Tabelle packen kann. Da wo die nicht stören.
Man könnte vielleicht bestimmten Tastenkombinationen die Farben zuordnen! d.h. Dass eine Zelle Selectiert wird und per Tastenkombination wird die Zelle dann eingefärbt! Dabei wird kurz der Blattschutz aufgehoben die Zelle angepinselt und danach der Blattschutz wieder gesetzt!

Code:
Sub Farbe()

ActiveSheet.Unprotect
ActiveCell.Interior.Color = Range("A1").Interior.Color
ActiveSheet.Protect
End Sub

Das einfach in ein Modul und die Farbe die du haben möchtest in A1 des aktiven Tabellenblatt! Dann weist du dem Makro unter "Makros" ein Tastenkürzel zu! Hinter Unprotect ein Leerzeichen und dein Passwort  für den Blattschutz das Selbe bei Protect! Wenn du den Code dann auch noch  schützen möchtest,  dann sicherst du das VBA-Projekt auch noch mit einem Passwort!
Es geht darum die Ampelfarben für eine Zelle zu nutzen. Hierdurch soll der Nutzer angeben wie der Erledigungsstatus der einzelnen Aktion (also der einzelnen Zelle ist).
Somit soll dieser wirklich jede einzelne Zelle in den 4 Farben ändern können.
Der Sinn dahinter ist unter anderem, dass ich die Felder in der Datei zählen lasse anhand ihrer Hintergrundfarbe.
Nutzt der User also eine leicht abweichende Farbe funktioniert diese Aufzählung nicht mehr.
Es hat also nichts mit Unvermögen zu tun...es kann ja jedem einmal passieren:)
Nach meinem Wissensstand bleibt dann nur eine komplette VBA Lösung oder die ActiveX Elemente im Beispiel. Aber Excel kann viel von dem ich nichts weiß^^

Aber hilfreich für Helfer ist auf jeden Fall eine Beispieldatei. (Sind die betreffenden Zellen zusammenhängen? Wild verteilt? usw usw.)

Wenn wirklich die Farben ausgewertet werden sollen, ist so eine Lösung schon angebracht, bei unterschiedlichen Excelversionen varieren die Farben ja etwas.
Hallo,

Zitat:Der Sinn dahinter ist unter anderem, dass ich die Felder in der Datei zählen lasse anhand ihrer Hintergrundfarbe.

genau so etwas hatte ich schon befürchtet. Es ist absolut unprofessionell Auswertungen nach Zellformaten vorzunehmen.
oder das geht  auch in die Tabelle
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Target.Column = 6 Then
       ActiveSheet.Unprotect
       If ActiveCell.Interior.Color = Range("A1").Interior.Color Then
       ActiveCell.Interior.Color = Range("B1").Interior.Color
       ElseIf ActiveCell.Interior.Color = Range("B1").Interior.Color Then
       ActiveCell.Interior.Color = Range("c1").Interior.Color
       ElseIf ActiveCell.Interior.Color = Range("C1").Interior.Color Then
       ActiveCell.Interior.Color = Range("D1").Interior.Color
       ElseIf ActiveCell.Interior.Color = Range("d1").Interior.Color Then
       With Selection.Interior
       .Pattern = xlNone
       .TintAndShade = 0
       .PatternTintAndShade = 0
       End With
       Else
       ActiveCell.Interior.Color = Range("A1").Interior.Color
       End If
       ActiveSheet.Protect

End If


End Sub

Farben von A1 bis D1! In Spalte F kann dann versucht werden:  Einfach eine Zelle in Spalte F andrücken, dann eine Zelle Rechts oder links daneben und dann wieder die Zelle in Spalte F! So wechselt sie die Farbe..
hallöchen,

nochmal, nimm doch die Nachbarzelle und gib dort einen Farbnamen an. Darauf legst Du eine bedingte Formatierung und da hast Du einige Möglichkeiten wie Ampeln, ausgefüllte Kreise usw. oder du definierst eben Deine gewünschten 4 Farben  

Ich hab hier mal nur rot genommen. B1 habe ich so schmal gehalten, dass man da noch anklicken kann - da kommt dann der Auswahlpfeil Smile, Du wählst rot und es wird eingefärbt. In B1 sollte man die Schriftgröße noch kleinstmöglich stellen und ggf. eine getrennte Formatierung vornehmen - hier rote Schrift bei rotem Hintergrund usw.

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1Willirot

ZelleGültigkeitstypOperatorWert1Wert2
B1Listerot;gelb;grün
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hi André,

in #8 hat der TE explizit das Anlegen einer Nachbarspalte ausgeschlossen.
Hallo Günter,

hat er nicht. Er schreibt sinngemäß nur, dass es aufwändig ist und nicht schön … Und ich habe nun einen schönen Tabellenausschnitt gepostet und Aufwändig ist das auch nicht. Wenn man es geschickt anstellt, macht man das in einer Spalte und kopiert es 40x …
Hallo Sebastian,

hier eine Variante per VBA. Das Auswahlmenü erfolgt durch Rechtsklick auf eine Zelle.
Die Datei muss als Makrodatei mit der Endung .xlsm gespeichert werden.



' **************************************************************
'  Modul:  Tabelle3  Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************


Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
   Dim oCtrB As CommandBarButton
   Cancel = True
   With Application.CommandBars.Add("MeineFarben", 5, , True)
       '1. Untereintrag
       With .Controls.Add(msoControlButton)
         .Caption = "Rot"
         .OnAction = "Hintergrundfarbe_setzen_Rot"
       End With
       '2. Untereintrag
       With .Controls.Add(msoControlButton)
         .Caption = "Gelb"
         .OnAction = "Hintergrundfarbe_setzen_Gelb"
       End With
       '3. Untereintrag
       With .Controls.Add(msoControlButton)
         .Caption = "Grün"
         .OnAction = "Hintergrundfarbe_setzen_Gruen"
       End With
       '4. Untereintrag
       With .Controls.Add(msoControlButton)
         .Caption = "Farblos"
         .OnAction = "Hintergrundfarbe_setzen_Farblos"
       End With
       .ShowPopup
       .Delete
   End With
End Sub


' **************************************************************
'  Modul:  Modul1  Typ = Allgemeines Modul
' **************************************************************


Option Explicit

Sub Hintergrundfarbe_setzen_Rot()
 ActiveCell.Interior.ColorIndex = 3
End Sub

Sub Hintergrundfarbe_setzen_Gelb()
 ActiveCell.Interior.ColorIndex = 6
End Sub

Sub Hintergrundfarbe_setzen_Gruen()
 ActiveCell.Interior.ColorIndex = 10
End Sub

Sub Hintergrundfarbe_setzen_Farblos()
 ActiveCell.Interior.ColorIndex = -4142
End Sub

Code eingefügt mit: Excel Code Jeanie

Nachtrag: Wenn man ActiveCell durch Selection ersetzt, lassen sich auch mehrere (vorher markierte) Zellen auf einmal ändern.

Gruß Uwe
Seiten: 1 2 3 4 5