Ohne Script wüsste ich erstmal nicht wie..
Beispielsweise bei Aktivierung von "DieseArbeitsmappe"
Code:
Private Sub Workbook_Activate()
Dim x, i
x = 0
For i = 1 To 65535
If Worksheets("Tabelle1").Rows(i).Font.ColorIndex _
<> -4105 Then x = x + 1
Next i
MsgBox x & " Zeilen mit nicht schwarzer Schriftfarbe"
End Sub
Andere Schriftfarbe und "eingefärbte Zeilen" ist nicht das selbe
Alternativ wäre für die Füllfarbe anwenbar:
Code:
Dim x, i
x = 0
For i = 1 To 65535
If Worksheets("Tabelle1").Rows(i).Interior.ColorIndex _
<> -4142 Then x = x + 1
Next i
MsgBox x & " Zeilen mit nicht weisser Füllfarbe"
ich hab' die beiden scripte ebent ausprobiert und bin leider zu keinem posivien ergebnis gekommen. ich bekomme bei einer probetabelle, in der ich die spalte a mit den gleichen einträgen aber unterschiedlichen schriftfarben eingetagen habe immer den hinweis, dass "0 Zeilen mit nicht schwarzer Schriftfarbe" vorhanden sind.
kann man das skript so abwandeln, dass in einem bereich, von beispielsweise spalte D bis H nach nicht schwarzer Schriftfarbe gesucht wird und das Ergenis gezählt ausgegeben wird.
Du hast da oben eindeutig (4x) von Zeilen gesprochen
und nicht von der einen oder anderen Spalte.
Demzufolge wird das o.g. auch nur funzen, wenn die Zeilen (Rows)
einheitlich sind. Auch manuell angepasste Farbwerte wäre ein K.O.
Einstellungen, die nur für Spalte A gelten, gelten damit nicht
für die gesamte Zeile und deshalb war das auch völlig richtig, wenn
das Skript vermeldete das "0 Zeilen mit nicht schwarzer Schriftfarbe"
vorhanden sind. Füllfarbe (2. Skript) ist scheinbar nicht gewünscht.
> von beispielsweise spalte D bis H nach
> nicht schwarzer Schriftfarbe gesucht wird
Und wenn die Spalte D schwarz ist und Spalte E nicht
was soll denn dann gezählt werden? - Spalten, alle Zellen oder was?
sorry, dass ich mich oben ein bischen wirr ausgedrückt habe.
ich würde also gern, dass die anzahl der zellen von spalte D bis H gezählt werden, in denen keinen schwarze schrift verwendet wird. wichtig ist wahrscheinlich noch, dass die zellen in denen keine eintragungen verhanden sind nicht mir gezählt werden.
unter zellen verstehe ich, die einzelnen felder einer tabelle in denen einträge stehen.
und noch einmal vielen dank und sorry für die verwirrung
Da bin ich über 'ne Kleinigkeit gestolpert, wenn ich per Vorgabe
schwarzen Text in eine Zelle schreibe ist der Farbcode -4105
Schwarz ist aber eigentl. 1. Ergo: Die Textfarbe "Automatisch"
ist (per Vorgabe) schwarz hat aber einen anderen Farbcode als
das manuell gewählte schwarz. Daraus ergibt sich nun:
Zähle alle Zellen der Spalten D-H die nicht leer sind und
eine Textfarbe anders als automatisch oder schwarz haben.
Code:
MsgBox "In Spalte D-H sind " & zaehleSpalte("D") _
+ zaehleSpalte("E") + zaehleSpalte("F") _
+ zaehleSpalte("G") + zaehleSpalte("H") _
& " nicht leere Zellen mit anderer Schriftfarbe" _
& " als automatisch oder schwarz", , "WinHelpline"
Function zaehleSpalte(spalte As String)
Dim i
For i = 1 To 65535
With Worksheets("Tabelle1").Range(spalte & i)
If .Value <> "" Then
If (.Font.ColorIndex <> -4105 And .Font.ColorIndex _
<> 1) Then zaehleSpalte = zaehleSpalte + 1
End If
End With
Next i
End Function
oder ohne eine Funktion (etwas ausführlicher):
Code:
Dim x, i, farbe
x = 0
For i = 1 To 65535
Rem wenn Zelle in Spalte D nicht leer ist, dann:
If Worksheets("Tabelle1").Range("D" & i).Value <> "" Then
farbe = Worksheets("Tabelle1").Range("D" & i).Font.ColorIndex
Rem wenn Zelle nicht autom oder schwarz ist, dann:
If (farbe <> -4105 And farbe <> 1) Then x = x + 1
End If
If Worksheets("Tabelle1").Range("E" & i).Value <> "" Then
farbe = Worksheets("Tabelle1").Range("E" & i).Font.ColorIndex
If (farbe <> -4105 And farbe <> 1) Then x = x + 1
End If
If Worksheets("Tabelle1").Range("F" & i).Value <> "" Then
farbe = Worksheets("Tabelle1").Range("F" & i).Font.ColorIndex
If (farbe <> -4105 And farbe <> 1) Then x = x + 1
End If
If Worksheets("Tabelle1").Range("G" & i).Value <> "" Then
farbe = Worksheets("Tabelle1").Range("G" & i).Font.ColorIndex
If (farbe <> -4105 And farbe <> 1) Then x = x + 1
End If
If Worksheets("Tabelle1").Range("H" & i).Value <> "" Then
farbe = Worksheets("Tabelle1").Range("H" & i).Font.ColorIndex
If (farbe <> -4105 And farbe <> 1) Then x = x + 1
End If
Next i
MsgBox "In Spalte D-H sind " & x & " nicht leere Zellen " _
& "mit anderer Schriftfarbe als automatisch oder schwarz"