Problem mit benutzerdefinierter Funktion (Excel-VBA)

Hallo zusammen, 

ich habe eine benutzerdefinierte VBA-Funktion, die ich in einem Modul gespeichert habe.

Der Funktion wird eine Zelle (as Range) übergeben und liefert String zurück. Die Funktion wird auf mehreren Worksheets wie eine Formel benutzt.

Jetzt ist es so, dass die sich diese Formeln nicht berechnen. Ein Application.Calculate funktioniert nicht.

Erst Alt+Strg+Shift+F9 (Application.CalculateFullRebuild) führt zu einer Neu-Berechnung.

Allerdings gibt es einen komischen Effekt. Die Formeln werden nur auf dem Worksheet richtig berechnet, welches gerade ausgewählt ist. Auf einem andere Worksheet liefern die Formeln falsche Ergebnisse. Wechselt man nun auf dieses Sheet und erzwingt dort die Neu-Berechnung liefern die Formeln auf dieser Seite auch richtige Werte. Allerdings liefern dann die Formeln auf dem anderen Sheet wieder falsche Werte.Die unterschiedlichen Worksheets hängen nicht zusammen. Der einzige Zusammenhang besteht in der Nutzung von ein und derselben benutzerdefinierten VBA-Funktion.

Was verursacht das Problem? Wie behebe ich das Problem? Hier die Funktion:

Public Function fn_PivDel(Zelle As Range) As String 

If Zelle.Value = „Kennzahl“ Then  
fn_PivDel = „DELETE“  
Exit Function
End If

If Zelle.Value = „Summe von Wert“
Then   fn_PivDel = „DELETE“  
Exit Function
End If 

If Zelle.Value = „“ Then  
fn_PivDel = „DELETE“  
Exit Function
End If 

fn_PivDel = „OK“ 

End Function 

PS: Nein, ich kann die Datei nicht hochladen. 

Gruß
Stephan

Hallo Stephan,

wie sehen denn die Sheets aus, und wie sehen die falschen Ergebnisse aus?
Könnntest du mal die Mappe hochladen? Dann wird es anschaulicher.

Danke und Gruß,
Andreas

Hallo Stephan,

setze mal in die Funktion:

Application.Volatile

ein.

Damit betrachtet EXCEL die Funktion als veränderliche und die Berechnung wird immer ausgeführt. (Zumindest funktioniert das bei mir…)

fg

Dirk.P