Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: bed. Formatierung mittels VBA

bed. Formatierung mittels VBA
Frank
Hallo Zusammen!!!
Wie immer bin ich wieder einmal mit mein Latein am Ende, hoffe auf eure Hilfe.
In Spalte E5:E310 steht immer ein Datum. Es handelt sich immer um Freitage, Samstage, Sonntage und Montage. Das ist f. d. bed. Formatierung in 2003 einer zuviel! Ich möchte das wenn das Datum ein Freitag ist soll die Schriftfarbe weinrot sein, Samstag blau, Sonntag rot und Montag dunkellila. Das ganze wollte ich hinter einen Button legen und am Ende der Erstellung der Daten auf Klick formatieren!
Ich hoffe ihr könnt mein Problem verstehen und mir eine Lösung anbieten!!! Vielen Dank im Vorraus!
Gruß Frank H.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
so geht das
20.01.2010 13:38:30
Björn
Hallo Frank,
mit diesem Code klappt das:

Sub Farben()
Dim Zeile As Integer
Range("E5:E310").Font.ColorIndex = xlAutomatic
For Zeile = 5 To 310
Select Case Weekday(Cells(Zeile, 5), 1)
Case 6 'Freitag
Cells(Zeile, 5).Font.ColorIndex = 9
Case 7 'Samstag
Cells(Zeile, 5).Font.ColorIndex = 5
Case 1 'Sonntag
Cells(Zeile, 5).Font.ColorIndex = 3
Case 2 'Montag
Cells(Zeile, 5).Font.ColorIndex = 13
End Select
Next Zeile
End Sub
Auf deinem Blatt einen Commandbutton erzeugen und das diese MAkro zuweisen.
Gruß
Björn B.
Anzeige
AW: so geht das
20.01.2010 14:00:24
Frank
Hallo Björn!
Danke, funzt Super. Wie kann ich aber die Fehlermeldung "Typen unverträglich" abfangen, wenn in Spalte E5:E310 Zellen noch leer sind? Vielleicht weißt du auch hier noch Rat!
Gruß Frank H.
AW: so geht das
20.01.2010 14:08:45
Björn
Hallo,
also auf die Schnelle "unschön" programmiert (einfach bei Dir erweitern):

On Error Resume Next
Select Case Weekday(Cells(Zeile, 5), 1)
On Error GoTo 0
Schöner wäre es, wenn man in ner If-Schleife das ganze prüft und abfängt.
Aber so funktionioert es. Ich bin da Minimalist und will keine Schönheitswettbewerbe gewinnen ;-)
Wenn es sich allerdings um eine größere VBA-Anwendung handelt, die mit Fehlerbehandlung arbeitet, dann sollte man das nicht so machen.
Gruß
Björn B.
Anzeige
AW: so geht das
20.01.2010 14:08:45
Björn
Hallo,
also auf die Schnelle "unschön" programmiert (einfach bei Dir erweitern):

On Error Resume Next
Select Case Weekday(Cells(Zeile, 5), 1)
On Error GoTo 0
Schöner wäre es, wenn man in ner If-Schleife das ganze prüft und abfängt.
Aber so funktionioert es. Ich bin da Minimalist und will keine Schönheitswettbewerbe gewinnen ;-)
Wenn es sich allerdings um eine größere VBA-Anwendung handelt, die mit Fehlerbehandlung arbeitet, dann sollte man das nicht so machen.
Gruß
Björn B.
Anzeige
AW: so geht das
20.01.2010 14:52:02
Luschi
Hallo Frank,
mach es so:

Sub Farben()
Dim Zeile As Integer
Range("E5:E310").Font.ColorIndex = xlAutomatic
For Zeile = 5 To 310
'Datentyp der Zelle prüfen
If VarType(Cells(Zeile, 5)) = vbDate Then
Select Case Weekday(Cells(Zeile, 5), 1)
Case 6 'Freitag
Cells(Zeile, 5).Font.ColorIndex = 9
Case 7 'Samstag
Cells(Zeile, 5).Font.ColorIndex = 5
Case 1 'Sonntag
Cells(Zeile, 5).Font.ColorIndex = 3
Case 2 'Montag
Cells(Zeile, 5).Font.ColorIndex = 13
End Select
End If
Next Zeile
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: so geht das
20.01.2010 15:35:36
Frank
Hallo Ihr zwei fleißigen Helfer!!!
Funzt nun super!!! Ihr, sowie das gesamte Forum wie immer Spitze!!!
Danke und Gruß Frank H.

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige