Excell 2003 Wenn Funktionen mit Farbänderungen

Pingumaus

Cadet 1st Year
Registriert
März 2011
Beiträge
9
Hallo!

Ich mache gerade eine Checkliste für die Arbeit und hätte es gerne etwas einfacher durch ein paar Funktionen.

Ich habe in einer Spalte ("Typ") ein paar Möglichkeiten zur Auswahl (z.B. Spot, Scan, Gutschein,...) und ich möchte, wenn ich in der Spalte "Status" z.B.: bei Freigabe eingebe, dass die Schriftfarbe blau formatiert wird. Jedoch brauche ich etwa 7 Formatierungen, daher kann ich mit der Bedingten Formatierung nichts anfangen, da man da ja nur 3 Formate einstellen kann...:(

Kurzfassung:

Ich will in eine =wenn(...) Funktion eine Farbänderung eingeben. Ich weiß, dass es funktionieren sollte, weil ich es mal gelernt hab, aber ich weiß nicht mehr wie:(

Bitte helft mir!

Danke schon mal im vorhinein!
 
Das Schlüsselwort heißt VBA. Hier mal ein Beispiel dieses Makro färbt die Felder rot wenn eine Formel in dem Feld ist.

Code:
For Each cell In Selection
        If cell.HasFormula Then
            cell.Interior.ColorIndex = 4
        End If
    
Next

Du baust in die schleife halt ein paar mehr if anweisungen rein.

cell.value = Wert/Inhalt der Zelle
 
Hey!

Vielen Dank für die schnelle Antwort:)

OK, ähm nur was sind VBA's? o.O

Mit diesem Code kann ich im Moment grad gar nichts anfangen:(
 
Wikipedia sagt:

Visual Basic for Applications (VBA) ist eine zu den Microsoft-Office-Programmen gehörende Skriptsprache. Sie wurde aus dem von Microsoft entwickelten BASIC-Dialekt Visual Basic (VB) abgeleitet und wurde zur Steuerung von Abläufen innerhalb der Microsoft-Office-Programme entwickelt.

Mit ALt + F11 kannst du den VBA Editor öffnen. Dort schreibst du dein Script( später dazu mehr) und kannst später eine schaltflächen für das Script nehmen oder das ganze per Tastenkürzel aufrufen.

Erklär mir bitte mal dein Problem etwas besser blicke da gerade nicht durch.
 
OK, also:

Ich habe eine Excell Tabelle mit 19 Spalten.
Die Spalte E heißt: 'Typ' (z.B. Scan, Gutschein, Spot, ...)
Die Spalte J heißt: 'Status' (bei Freigabe, gedruckt, offen, ...)

Wenn ich in die Spalte J 'offen' eintrage, will ich dass das Wort automatisch rot und fett formatiert wird und das soll mit jedem dieser Statuseinträge (siehe oben) in einer anderen Formatierung geschehen.

Jedoch brauche ich mehr Statuseintragemöglichkeiten als man in Format/Bedingte Formatierungen zum Beispiel einstellen kann:(

Ich hab Dir Anbei einen Screenshot angehängt.
 

Anhänge

  • Checkliste_Beispiel.jpg
    Checkliste_Beispiel.jpg
    110,3 KB · Aufrufe: 147
Okey das ist kein Problem.

Also du trägst in J was ein z.b. offen oder stoniert und das wort selbst soll sich einfärben (be jedem Wort eine andere Farbe)
 
Genau so in etwa^^
Nur soll sich das eben automatisch einfärben:(

Weißt Du wie das geht, dass jedes Wort eine andere Formatierung (fett und/oder eine andere Farbe) hat?
 
Ich mache dir das heute mal im laufe des Tages fertig ;)
 
Erstellst Du mir etwa eine neue Tabelle nach meinen Wünschen?:eek:
 
Nein aber ein Marko was in deiner Tabelle funktioniert
 
Ok, also ich hab mir das mit dem VBA mal im Excel angeschaut...

Müsste ich einfach den Code den Du mir da geschickt hast in das Fenster kopieren?
 
Genau du kopierst den Code in "DieseArbeitsmappe"


Code:
Sub colorhighlighting()

Dim anzahl_zellen

'Anzahl der Zellen
anzahl_zellen = ActiveSheet.UsedRange.Rows.Count
' Welche ist die erste zelle die abgearbeitet werden soll -> 2 = z.b. A2 oder B2
anfang = 2

For i = 1 To anzahl_zellen

If Range("J" & i).Value = "offen" Then
    Range("J" & i).Font.ColorIndex = 3
End If

If Range("J" & i).Value = "erledigt" Then
    Range("J" & i).Font.ColorIndex = 4
End If

If Range("J" & i).Value = "storniert" Then
    Range("J" & i).Font.ColorIndex = 7
End If

If Range("J" & i).Value = "bei Freigabe" Then
    Range("J" & i).Font.ColorIndex = 8
End If

If Range("J" & i).Value = "Material anfordern" Then
    Range("J" & i).Font.ColorIndex = 30
End If

If Range("J" & i).Value = "bedruckt" Then
    Range("J" & i).Font.ColorIndex = 10
End If

If Range("J" & i).Value = "eingespielt" Then
    Range("J" & i).Font.ColorIndex = 10
End If

If Range("J" & i).Value = "zur Freigabe" Then
    Range("J" & i).Font.ColorIndex = 10
End If

Next i

End Sub

Getestet unter Office 2010!

Der Quelltext sollte leicht verständlich sein:

Bei Änderungen kannste diese Farbtabelle nutzen: http://excelwelt.de/Excelallg/farb.html


Das Makro speichern und dann kannste z.b. über Ansicht -> Markos -> dann sollte da stehen DieseArbeitsmappe.colorhighting -> Optionen. Einen Tastenkürzel zuweisen damit die Änderungen auch eingefärbt werden.
 
Danke, es funktioniert:)

Jedoch habe ich noch ein paar Fragen dazu:

1. Kann ich es auch so einstellen, dass das Format durch dieses Makro automatisch bei der Eingabe übernommen wird?
Aus irgendeinem Grund färbt es sich nur richtig ein wenn ich nochmal in Extra/Makro/Makro Ausführen gehe:(
Ergänzung ()

Habs schon herausgefunden^^

Ich danke Dir für die Hilfe!:)
 
Zuletzt bearbeitet: (zu spät bemerkt^^'')
Auch kein Problem. Den Code von DiesesArbeitsmappe in Tabelle1 bzw in deine gewünschte Tabelle kopieren. Den alten kannste entfernen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Call colorhighlighting
End Sub


Sub colorhighlighting()

Dim anzahl_zellen

'Anzahl der Zellen
anzahl_zellen = ActiveSheet.UsedRange.Rows.Count
' Welche ist die erste zelle die abgearbeitet werden soll -> 2 = z.b. A2 oder B2
anfang = 2

For i = 1 To anzahl_zellen

If Range("J" & i).Value = "offen" Then
    Range("J" & i).Font.ColorIndex = 3
End If

If Range("J" & i).Value = "erledigt" Then
    Range("J" & i).Font.ColorIndex = 4
End If

If Range("J" & i).Value = "storniert" Then
    Range("J" & i).Font.ColorIndex = 7
End If

If Range("J" & i).Value = "bei Freigabe" Then
    Range("J" & i).Font.ColorIndex = 8
End If

If Range("J" & i).Value = "Material anfordern" Then
    Range("J" & i).Font.ColorIndex = 30
End If

If Range("J" & i).Value = "bedruckt" Then
    Range("J" & i).Font.ColorIndex = 10
End If

If Range("J" & i).Value = "eingespielt" Then
    Range("J" & i).Font.ColorIndex = 10
End If

If Range("J" & i).Value = "zur Freigabe" Then
    Range("J" & i).Font.ColorIndex = 10
End If

Next i

End Sub
 
Ok eine Frage hab ich doch noch^^

Kann ich einstellen, dass der Rest der eventuell falsch in die Tabelle eingegeben wurde schwarz bleibt oder eine andere Farbe hat?

Ich hab gerade ein Wort absichtlich falsch eingegeben, hab die Makros aktualisiert und das Wort blieb lila o.O

Bitte entschuldige, dass ich Dich so viel nerve^^''
 
Auch kein Problem:
Code:
'Ungültige Eingabe
Range("J" & i).Font.ColorIndex = 1

Das Unter :

Code:
For i = 1 to anzahl_zellen

einfügen.
 
Ich glaub das wars jetzt:D

Funktioniert momentan einwandfrei:)

Vielen Dank!:)
 
Zurück
Oben