Function aktualisiert nicht



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Function aktualisiert nicht
von: Markus
Geschrieben am: 01.07.2002 - 10:21:58

Hallo

Ich habe eine Funktion die nur die nicht rot markierten Felder zusammenzählt.

Aber sie aktaulisiert einfach nicht, wenn ich die Farbe ändere.

Was muss ich machen?

kann mir da jemand helfen ?

besten Dank für eure Bemühungen.


Function Summenichtrot(bereich As range)
Application.Volatile
Dim zelle As range
Dim res As Double
For Each zelle In bereich.Cells
If zelle.Font.ColorIndex <> 3 Then
res = res + zelle
End If
Next
Summenichtrot = res
End Function


nach oben   nach unten

Re: Function aktualisiert nicht
von: PeterW
Geschrieben am: 01.07.2002 - 11:58:39

Hallo Markus,

Du fragst in Deinem Code nur die Schriftfarbe ab, nicht die Hintergrundfarbe (interior.colorindex).

Was die Aktualisierung angeht müsstest Du die Funktion nach Änderungen erneut aufrufen.

Gruß
Peter


nach oben   nach unten

Re: Function aktualisiert nicht
von: Hans W Hofmann
Geschrieben am: 01.07.2002 - 12:09:49

Hallo Markus,

kann sie auch nicht, da Farbänderungen keine Change-Ereignis auslösen und die Berechnung nicht anstoßen.
Andere Frage: Warum sind die Werte rot?

Gruß HW

nach oben   nach unten

Re: Function aktualisiert nicht
von: WernerB.
Geschrieben am: 01.07.2002 - 20:14:57

Hallo Markus,

die nachstehende Function berücksichtigt auch den roten Hintergrund:


Option Explicit
Function SummeNichtRot(Rng As Range) As Double
Dim zelle As Range
Dim res As Double
    Application.Volatile
    For Each zelle In Rng.Cells
      If IsNumeric(zelle) Then
        If zelle.Interior.ColorIndex <> 3 _
          And zelle.Font.ColorIndex <> 3 Then
          res = res + zelle.Value
        End If
      End If
    Next zelle
    SummeNichtRot = res
End Function

Zur Aktualisierung:
1. Wenn Du die F9-Taste drückst, wird aktualisiert.
2. Alternativ zum Gebrauch der F9-Taste kannst Du auch im Tabellenblatt-Modul den folgenden Code hinterlegen (als Ergebniszelle habe ich "A12" angenommen):

- Mache dazu einen Rechtsklick auf den Tabellennamen.
- Klicke dann auf "Code anzeigen".
- Automatisch öffnen sich nun der VB-Editor und das Klassenmodul des betreffenden Tabellenblattes.
- Schreibe/kopiere das nachstehende kleine Makro in die große weiße Fläche auf der rechten Seite.
- Zurück zum "normalen" Excel geht's mit Alt + Q.
- Fertig.

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
ActiveSheet.Range("A12").Calculate
End Sub

Allerdings machen mehrere solcher Konstrukte Excel erheblich langsam, weil es nach jedem Mausklick neu rechnet. Diesen Nachteil musst Du leider in Kauf nehmen.


Viel Erfolg wünscht
WernerB.

nach oben   nach unten

Re: Function aktualisiert nicht
von: Markus
Geschrieben am: 02.07.2002 - 14:56:12

Besten Dank für Deine Hilfe,

Ich hatte viel zu tun, und bin leider erst jetzt dazu gekommen zu antworten.

Gruss Markus


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Function aktualisiert nicht"