Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
808to812
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
808to812
808to812
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Volatile reagiert auf fremde Dateiänderung

Volatile reagiert auf fremde Dateiänderung
09.10.2006 17:32:53
Reinhard
Hallo Wissende,
ich habe in einer Excelinstanz 2 Dateien geöffnet. Die eine (B) hat eine benutzerdefierte Funktion mit "Application.Volatile" im Code.
Die Dateien haben keinerlei Verweise aufeinander.
Wenn ich in der Datei A, die sogar gar keinen Code hat, eine Zelle lösche wurde dann die BDF der anderen Datei B neu berechnet und es kam die selbstgeschriebene Fehlermeldung der BDF. Ich musste dann die BDF exakter referenzieren mit "Thisworkbook.Worksheet..." anstatt nur "Worksheet..." um den Fehler zu eliminieren.
Wenn ich nun Datei A schliesse, kommt wieder die Fehlermeldung aus der Funktion in Datei B.
Wenn ich nun Datei A wieder öffne, so wird anscheinend 1mal die Funktion angeregt (sie ist in 3 Zellen, deshalb wird sie pro Anregung 3 mal ausgeführt) dann kommt eine Fehlermeldung dass ein Zirkelbezug besteht, die Ergebnisse der BDF gehen auf 0, dann wird die BDF noch 2mal angeregt, jedesmal mit ihrer Fehlermeldung.
Sicher, ohne olatile passiert das nicht, aber dann reagiert die BDF nicht auf Autofilter.
Datei A: https://www.herber.de/bbs/user/37269.xls
Datei B:

Die Datei https://www.herber.de/bbs/user/37277.xls wurde aus Datenschutzgründen gelöscht

Code in Modul1 von Datei 37277.xls
Option Explicit
Function SK_SUMME(Zelle As Range) As Double
Dim N As Integer, Z As String, Zei As Long
On Error GoTo Fehler
MsgBox "funktion "
Application.Volatile
Application.ScreenUpdating = False
For N = 1 To Len(Zelle.Value)
If IsNumeric(Mid(Zelle.Value, N, 1)) Then Z = Z & Mid(Zelle.Value, N, 1)
Next N
With Worksheets("Kostenarten")
For Zei = 1 To .UsedRange.Rows.Count
If .Cells(Zei, 2) = Z Then SK_SUMME = SK_SUMME + .Cells(Zei, 3)
Next Zei
End With
Exit Function
Application.ScreenUpdating = True
Fehler:
MsgBox "Hitzefrei :-)"
Application.ScreenUpdating = True
End Function

Gruß
Reinhard

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Volatile reagiert auf fremde Dateiänderung
10.10.2006 19:46:52
Ali
Hi,
andres, als es in der Hilfe steht, bewirkt Volatile eine Berechnung aller betroffenen
UDF in allen offenen Mappen, ist also nicht ganz unproblematisch.
mfg Ali

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige