Berchnung automatisch in Excel 2003

Hallo Freunde
Ich möchte, dass mein Excel generell neue Mappen mit „Berechnung automatisch“ öffnet. Dies habe ich auch dem entsprechenden XLT mitgeteilt, aber es klappt einfach nicht.
Woran liegt das wohl und kann ich es notfalls mit einem Makro erzwingen, das aber bei jeder neuen Mappe laufen muss? Wo schreibe ich das hin?
Erich

Hallo Erich,
ähm Extras/Optionen/Berechnen = setzen hilft nicht weiter?
Viele Grüße vom Harald aus Wiesbaden

Hallo Harald

ähm Extras/Optionen/Berechnen = setzen hilft nicht weiter?

Eben leider nicht! Beim nächsten Start ist alles vergessen!
Erich

Ich möchte, dass mein Excel generell neue Mappen mit
„Berechnung automatisch“ öffnet. Dies habe ich auch dem
entsprechenden XLT mitgeteilt, aber es klappt einfach nicht.
Woran liegt das wohl und kann ich es notfalls mit einem Makro
erzwingen, das aber bei jeder neuen Mappe laufen muss? Wo
schreibe ich das hin?

Hi Erich,
seit 3-4 Jahren kenne ich Excel, d.h. durch Festplattenärger wurde es schon mehrmals neuinstalliert. Jahrelang war da immer bei Standardinstallation „automatisches Berechnen“ voreingestellt. Mein derzeitiges Excel2000, ist warum auch immer, ich weiß nicht was geschah, so eingestellt dass jede Datei mit „manueller Berechnung“ geöffnet wird, k.A. warum. Nervt :frowning:
Wennn eine Neuinstallation bei dir nichts bringt dann ist nachfolgend ein Code der bei jeder Öffnung einer Datei einen Verweis setzt. Da ich von Klassenmodulen null Ahnung habe musste dir das selbst umstricken damit immer auf „automatisches Berechnen“ umgestellt wird.
Gruß
Reinhard

In DieseArbeitsmappe:

Option Explicit
Private objApplication As clsApplication
Private Sub Workbook\_Open()
 Set objApplication = New clsApplication
 Set objApplication.prpApplication = Application
End Sub

Mit Einfügen–Klassenmodul ein Klassenmodul mit dem Namen „clsApplication“ erzeugen und folgender Code.

Option Explicit
Private WithEvents mobjApplication As Application

Public Property Set prpApplication(objApplication As Application)
 Set mobjApplication = objApplication
End Property

Private Sub mobjApplication\_NewWorkbook(ByVal Wb As Workbook)
 Call prcAddReverence(Wb)
End Sub

Private Sub mobjApplication\_WorkbookOpen(ByVal Wb As Workbook)
 Call prcAddReverence(Wb)
End Sub

und dann in einem Modul:

Option Explicit

Private Const FM20\_GUID = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}"

Public Sub prcAddReverence(objWorkbook As Workbook)
 Dim intIndex As Integer
 Dim blnFound As Boolean
 On Error GoTo err\_exit
 With objWorkbook.VBProject.References
 For intIndex = 1 To .Count
 If .Item(intIndex).GUID = FM20\_GUID Then
 If .Item(intIndex).IsBroken Then
 .Remove .Item(intIndex)
 Else
 blnFound = True
 End If
 End If
 Next
 If Not blnFound Then \_
 .AddFromGuid GUID:=FM20\_GUID, Major:=2, Minor:=0
 End With
 Exit Sub
err\_exit:
 MsgBox "Fehler " & CStr(Err.Number) & vbLf & \_
 vbLf & Err.Description, vbCritical, "Fehler"
End Sub

Hallo Reinhard

Endlich eine mitfühlende Seele!
Ich benutze Excel seit über 15 Jahren, da war immer „automatisch“ als default. Mit Excel 2003 eben nicht mehr!

Nervt :frowning:

Ja, sehr !

Wennn eine Neuinstallation bei dir nichts bringt

Habe ich versucht, nützt nichts!
Ich werde dein Makro ausprobieren, muss es jedoch noch ganz verstehen!
Vorerst vielen Dank
Erich

Ich werde dein Makro ausprobieren, muss es jedoch noch ganz
verstehen!

Hallo Erich,
so richtig verstehen kann ich es auch nicht :smile:
Die anderen Codes bleien wie beschrieben, folgenden Code in Modul1 der personl.xlshabe ich abgeändert und nun steht die Berechnung wie gewünscht auf „automatisch“.

Option Explicit

Private Const FM20\_GUID = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}"

Public Sub prcAddReverence(objWorkbook As Workbook)
 Dim intIndex As Integer
 Dim blnFound As Boolean
 On Error GoTo err\_exit
 With objWorkbook.VBProject.References
 For intIndex = 1 To .Count
 If .Item(intIndex).GUID = FM20\_GUID Then
 If .Item(intIndex).IsBroken Then
 .Remove .Item(intIndex)
 Else
 blnFound = True
 End If
 End If
 Next
 If Not blnFound Then \_
 .AddFromGuid GUID:=FM20\_GUID, Major:=2, Minor:=0
 End With
 objWorkbook.Application.Calculation = xlCalculationAutomatic
 Exit Sub
err\_exit:
 MsgBox "Fehler " & CStr(Err.Number) & vbLf & \_
 vbLf & Err.Description, vbCritical, "Fehler"
End Sub

Gruß
Reinhard