Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
156to160
156to160
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Neuberechnung benutzerdefinierter Funktionen

Neuberechnung benutzerdefinierter Funktionen
11.09.2002 22:18:33
Norbert Kolb
Hi,
ich benötige eine Funktion, die in einem bestimmten Zellbereich das vorkommen einer Hintergrundfarbe zählt. Die folgende Funktion kann dies auch.

Wenn ich diese Funktion anwende wird korrekt gezählt. Wenn ich allerdings die Farbe einer Zelle ändere, wird nicht automatisch aktualisiert, sondern erst nach anklicken der Formel in der Eingabezeile und drücken von Enter.

Wie kann ich es erreichen, dass sofort aktualisiert wird??

Public Function countColor(bereich As Range, farbe As Integer) As Integer

Dim x As Integer, y As Integer
Dim startx As Integer, starty As Integer
Dim zelle As Range
Dim anzahl As Integer
startx = 1
startx = bereich.Row
starty = bereich.Column
x = bereich.Columns.Count
y = bereich.Rows.Count
anzahl = 0
For Each zelle In bereich
If zelle.Interior.ColorIndex = farbe Then
anzahl = anzahl + 1
End If
Next
countColor = anzahl
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Application.Volatile
12.09.2002 00:03:51
Nike
Hi,
setz mal das hier noch in deine Funktion ein:
Application.Volatile

Bye

Nike

Re: Neuberechnung benutzerdefinierter Funktionen
12.09.2002 19:08:42
WernerB.
Hallo Norbert,

es ist leider so, dass eine Function nicht auf Format-Veränderungen reagiert, wenn man nicht ein bisschen nachhilft. Wenn Du also die Zellfarben in dem Bereich veränderst, zeigt Excel in der Ergebniszelle immer noch den alten Wert an.

Alternativ zum Gebrauch der F9-Taste kannst Du auch im Klassenmodul des betreffenden Tabellenblattes den folgenden Code hinterlegen (als Ergebniszelle habe ich "A11" 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 Makro in die große weiße Fläche auf der rechten Seite.
- Zurück zum "normalen" Excel geht's mit Alt + Q.
- Fertig.

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.

Anzeige

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige