Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Diskutiere Über Dropdownfeld Farbe mehrerer Spalten ändern im Windows XP Forum Forum im Bereich Betriebssysteme; Hallo,
würde mir gern in einer Exeldatei in der vordersten Spalte ein Feld mit 3 Auswählmöglichkeiten erstellen.
1: in Arbeit
2: erlegigt
3...
#1
M
manuel_bo
Aktives Mitglied
Themenersteller
Dabei seit
26.08.2007
Beiträge
29
Reaktionspunkte
0
Hallo,
würde mir gern in einer Exeldatei in der vordersten Spalte ein Feld mit 3 Auswählmöglichkeiten erstellen.
1: in Arbeit
2: erlegigt
3: vorgemerkt
nun sollen die dahinterliegenden Spalten ihre farbe in abhängigkeit des statuses ändern.
z.B. in Arbeit grün (z.B. A16-H16) soll grün werden.
Ist das möglich? wie geht das?
danke
Gruß
Manuel
#2
M
Matjes
Bekanntes Mitglied
Dabei seit
22.08.2001
Beiträge
2.308
Reaktionspunkte
0
Hallo manuel_bo,
das funktioniert über Gültigkeit und einen Makro.
zunächst hab ich dir ein Makro erstellt, mit dem die Gültigkeit in Spalte A gesetzt wird.
Code:
Sub GueltigkeitInSpalteASetzen()
-> entspricht
-> Daten->Gültigkeit...->Reiter Einstellungen
-> Zulassen: Liste
-> Leere Zellen ignorieren: Haken
-> ZellendropDown : Haken
-> Quelle : in Arbeit;erledigt;vorgemerkt
Const cSP_AUSWAHL = 1-> entspricht Spalte A
With ActiveSheet.Columns(1).Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, _
Formula1:=in Arbeit,erledigt,vorgemerkt
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle =
.ErrorTitle =
.InputMessage =
.ErrorMessage =
.ShowInput = True
.ShowError = True
End With
End Sub
Wenn dieses Makro gelaufen oder in Arbeit;erledigt;vorgemerkt von Hand als Gültigkeit für Spalte A eingegeben ist, kann es weiter gehen.
Folgendes Makro muß in die Code-Seite des Tabellenblattes kopiert werden.
Code-Seite ist erreichbar per->Blattlasch->rechte Maustaste->Code anzeigen
Code:
Option Explicit
Private Const cSP_AUSWAHL = 1-> entspricht Spalte A
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
For Each Zelle In Target
If Zelle.Column = cSP_AUSWAHL Then
Call FarbeDerZeileEntsprechendStringSetzen(Zelle)
End If
Next
Set Zelle = Nothing
End Sub
Private Function FarbeDerZeileEntsprechendStringSetzen(Zelle As Range)
Dim ws As Worksheet, r As Range
Dim lLetzteSpalte As Long, lFarbIndex As Long
Dim txt As String
Set ws = Zelle.Parent
lLetzteSpalte = ws.UsedRange.Columns.Count + ws.UsedRange.Column - 1
Set r = ws.Range(ws.Cells(Zelle.Row, 1), ws.Cells(Zelle.Row, lLetzteSpalte))
txt = Zelle.Value
Select Case txt
Case : lFarbIndex = xlColorIndexNone->keine
Case in Arbeit: lFarbIndex = 38 ->hellrosa
Case erledigt: lFarbIndex = 35 ->hellgruen
Case vorgemerkt: lFarbIndex = 6 ->gelb
Case Else:
->unzulässiger Wert -> löschen
Application.EnableEvents = False
Zelle.Value =
Application.EnableEvents = True
lFarbIndex = xlColorIndexNone
End Select
r.Interior.ColorIndex = lFarbIndex
Set ws = Nothing: Set r = Nothing
End Function