Microsoft Excel

Herbers Excel/VBA-Archiv

Dim Zelle As Range, Farbe As Long

Betrifft: Dim Zelle As Range, Farbe As Long von: sockel939
Geschrieben am: 21.08.2008 10:04:28

Hallo,
sagt mal wie bekomme ich den code dazu nicht die Zellenfarbe zu ändern sondern die Schriftfarbe.

Habe mal statt Interior , Font eingetragen dann bleibt er aber Hängen.

Dim Zelle As Range
Dim Farbe As Long
For Each Zelle In Range("m2:m1000")
Select Case Zelle.Value
Case "Heute"
Farbe = 45
Case "Morgen"
Farbe = 42
Case "Mittag"
Farbe = 15
Case "Abend"
Farbe = 43
End Select
Range(Zelle.Offset(0, -Zelle.Column + 1), Zelle.Offset(0, -1)).Interior.ColorIndex = Farbe
Next Zelle

Danke.

  

Betrifft: Welche Fehlermeldung? von: Tobias
Geschrieben am: 21.08.2008 10:22:40

Hallo Sockel!
Range("A1").Font.ColorIndex = 45 klappt bei mir. Welche Fehlermeldung kommt den?

Schönen Gruß, Tobias
http://www.vba-blog.de/


  

Betrifft: AW: Dim Zelle As Range, Farbe As Long von: fcs
Geschrieben am: 21.08.2008 10:26:43

Hallo Sockel,

indem du "Interior" durch "Font" ersetzt.
Falls das bei dir zu einem Feher führt, dann hast du wahrscheinlich einen Fehler bei der Code-Eingabe.
Bei mir (Excel 2003) funktioniert der Code bei entsprechender Änderung.

Gruß
Franz


  

Betrifft: AW: .Font.ColorIndex von: Erich G.
Geschrieben am: 21.08.2008 10:45:09

Hallo Vorname(?),
das es mit Font statt Interior klappen sollte, weißt du ja jetzt schon.

Was ist, wenn in M5 keine der vier abgeprüften Tageszeiten steht?
Nach deinem Code bekommt der Bereich in dieser Zeile die Schriftfarbe,
die zuletzt ausgewählt wurde. Soll das so sein?

Noch eins:
Zelle.Offset(0, -Zelle.Column + 1)
kann man wohl einfacher und verständlicher so schreiben:
Cells(Zelle.Row, 1)
also die Zelle in Spalte A der jeweiligen Zeile.

Probier mal

Sub tst()
   Dim rngZ As Range, intFarbe As Integer

   For Each rngZ In Range("m2:m1000")
      Select Case rngZ.Value
         Case "Heute":  intFarbe = 45
         Case "Morgen": intFarbe = 42
         Case "Mittag": intFarbe = 15
         Case "Abend":  intFarbe = 43
         Case Else:     intFarbe = 0
      End Select
      If intFarbe > 0 Then _
         Range(Cells(rngZ.Row, 1), rngZ.Offset(0, -1)).Font.ColorIndex = intFarbe
   Next rngZ
End Sub

Hier wird die Farbe nur in den Zeilen geändert, in denen eine der Tageszeiten steht.

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort


  

Betrifft: AW: .Font.ColorIndex von: sockel939
Geschrieben am: 21.08.2008 14:15:46

Danke an alle !
Habs jetzt auch hinbekommen, war ein Denkfehler von mir :-)

Erich deinen Code werde ich auch mit einbinden, danke dir!

Gruß
sockel939