ich hab da mal ein kleines aber sehr störendes Problem.
Ich habe in einer Excel-Datei test.xls eine Function geschrieben, mit der ich die Summe eines Zellbereiches einer bestimmten Schriftfarbe rechne. Die Function macht auch das was sie machen soll.
' Berechnet nur die Summe eines Range in dem die Textfarbe intColor entspricht
Public Function SumColor(bereich As Range, intColor As Integer) As Double
On Error Resume Next
Dim i As Range
Dim Summe As Long
Dim Msg As String
Dim funktion As String
Dim errors As String
MsgBox ("hallo") 'Ist hier nur als Test zur Verdeutlichung enthalten
Application.Caption = "Fischer & Ehms KG"
Application.Volatile
For Each i In bereich.Cells
If IsNumeric(i) Then
If i.Font.ColorIndex = intColor Then SumColor = SumColor + i.Value
End If
Next i
End Function
Nun ist es aber so, dass diese Function auch durchlaufen wird wenn ich bei geöffneter test.xls in einer neuen Excel-Datei (die nicht über diese Function verfügt und daher auch nicht rechnen kann) Zellinhalte ändere.
Daher der Test in der Function mit msgbox(). Ändere ich also in einer neuen Mappe eine Zelle, so erhalte ich eine Meldung "Hallo".
Wie kann ich die Function dazu bringen, das sie nur in der Mappe durchläuft in der sie auch steht ohne Application.Calculation = False zu benutzen?
Eine genauere Functionsdeutung mit
private Function() oder nur function() führt nicht zum gewünschten erfolg!
Die Aktualiesierung in der test.xls soll auch nicht mit Hilfe eines Buttons ausgelösst werden.
Ich bedanke mich bereits im Voraus für Eure Anteilnahme.
gruß mod