Microsoft Excel

Herbers Excel/VBA-Archiv

Automatische Berechnung

Betrifft: Automatische Berechnung von: Kurt
Geschrieben am: 06.09.2020 13:22:14

Hallo,


habe eine recht einfache Frage. Denke dass es nicht unbedingt ein Fall für die Auftragsprogrammierung ist. Wenn doch, kurze Info, wenn das so ist.

Es geht eigentlich nur darum, dass die automatische Berechnung beim Start der Arbeitsmappe ausgeschaltet ist und automatisch aktiv wird, wenn z.B. ein in Zelle A1 eingegebener Wert überschritten wird.


Viele Grüße Kurt

Betrifft: AW: Automatische Berechnung
von: Hajo_Zi
Geschrieben am: 06.09.2020 13:40:17

Hallo Kurt,

starte den VBA Editor (Alt+F11), Bild sollte zweigeteilt sein ansonsten Strg+R, Doppelklick auf Deine Datei, Doppelklick auf DieseArbeitsmappe, Code ins rechte Fenster kopieren, VBA Editor schließen.
Das Makro wird automatisch gestartet.
Dies gilt für alle Ereignisse unter DieseArvbeitsmappe.
Der Code wirkt in der gesamten Datei.
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.Calculation = xlAutomatic
End Sub

Private Sub Workbook_Open()
    Application.Calculation = xlManual
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.Calculation = xlAutomatic
    Application.Calculation = xlManual
End Sub
GrußformelHomepage

Betrifft: AW: Automatische Berechnung
von: Kurt
Geschrieben am: 06.09.2020 23:20:33

Hallo Hajo,

und das funktioniert, wenn der Wert z.B. in Zelle A1 überschritten wird?

Vielen Dank Kurt

Betrifft: AW: Automatische Berechnung
von: Hajo_Zi
Geschrieben am: 07.09.2020 05:45:52

Hallo Kurt,

es geht bei jeder Zelländerung.
Ich würde noch folgendes ergänzen.
Option Explicit

Private Sub Workbook_Activate()
    Application.Calculation = xlManual
End Sub

Private Sub Workbook_Deactivate()
    Application.Calculation = xlAutomatic
End Sub
Gruß Hajo

Betrifft: AW: Automatische Berechnung
von: Matthias L
Geschrieben am: 06.09.2020 13:45:16

Hallo

z.B so

In DieseArbeitsmappe:
Option Explicit
Private Sub Workbook_Open()
 Application.Calculation = xlManual
End Sub
Ins Modul des Tabellenblattes:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$A$1" Then
  If Target < 5 Then
   Application.Calculation = xlCalculationAutomatic
  Else
   Application.Calculation = xlManual
  End If
 End If
End Sub
Der Wechsel erfolgt hier beim Wert 5, wenn A1 verädert wird.

Gruß Matthias

Betrifft: Korrektur: If Target >= 5 Then ... owT
von: Matthias L
Geschrieben am: 06.09.2020 13:57:34



Betrifft: AW: Korrektur: If Target >= 5 Then ... owT
von: Kurt
Geschrieben am: 06.09.2020 23:00:27

Vielen Dank Matthias,

werde es morgen mal testen. Erst mal ganz herzlichen Dank.
Melde mich, ob es geklappt hat.Habe die Korrektur auch verstanden.

Gruß Kurt

Beiträge aus dem Excel-Forum zum Thema "Automatische Berechnung"