Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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
Inhaltsverzeichnis

Geschwindigkeit der Berechnung regeln

Geschwindigkeit der Berechnung regeln
10.06.2016 11:43:34
Perkams

Hallo,
die Berechnungen in Excel werden ja atemberaubend schnell vorgenommen.
Ich möchte jedoch bewusst in einem überschaubaren Arbeitsblatt den Ablauf von Berechnungen verlangsamen:
Tippe ich beispielsweise in der Zelle A1 einen Wert ein, so erfolgt in Zelle B1 aufgrund einer dort hinterlegten Formel eine Berechnung. Das Ergebnis dieser Berechnung soll aber erst etwa 1 Sekunde nach Eingabe des Wertes in A1 erscheinen.
Aufgrund des Ergebnisses in B1 erscheint in C1 aufgrund einer dort hinterlegten anderen Formel ein weiterer Wert. Auch dieser Wert soll nach einer weiteren Sekunde erscheinen.
Optisch soll also nachvollziehbar sein, wie sich die einzelnen Werte nach und nach ändern. Wie schafft man das?
Gruß
Rudi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: C64 kaufen
10.06.2016 13:27:55
UweD
;-)

sooo lahm ist der auch nicht.
10.06.2016 13:44:16
Rudi Maintaire
und statt Excel dann VisaCalc oder so.
Gruß
Rudi

AW: Geschwindigkeit der Berechnung regeln
10.06.2016 14:48:21
RPP63
Moin!
Sowas ginge mit VBA.
Stichwort:
Application.OnTime im Worksheet_Change
Gruß Ralf

AW: Geschwindigkeit der Berechnung regeln
10.06.2016 15:34:13
Daniel
HI
sowas müsste per Marko passieren.
wobei ich die Berechnung per Formel belassen würde und im Makro nur folgendes Ablaufen lassen würde:
Bei Eingabe in A1:
- Zellen B1 und C1 Schriftfarbe = Hintergrundfarbe
- 1 sec warten
- Schriftfarbe B1 auf Schwarz
- 1 sec warten
- Schriftfarbe C1 auf Schwarz
sieht als Code im Modul des Tabellenblatts so aus:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zelle As Range
Dim t As Double
If Target.Address(0, 0) = "A1" Then
For Each Zelle In Range("B1,C1")
Zelle.Font.Color = Zelle.Interior.Color
Next
For Each Zelle In Range("B1,C1")
t = Timer + 1 'Wartezeit in Sekunden
Do While Timer < t: Loop
Zelle.Font.Color = vbBlack
Next
End If
End Sub
hat den Vorteil, dass die Berechnungsformel selbst für den Code keine Rolle spielt.
Gruß Daniel

Anzeige
AW: Geschwindigkeit der Berechnung regeln
10.06.2016 15:46:20
Mullit
Hallo,
...gute Idee von Ralf, mein C64-Simulator:
' ********************************************************************** 
' Modul: DieseArbeitsmappe Typ: Klassenmodul der Arbeitsmappe 
' ********************************************************************** 

Option Explicit

Private Sub Workbook_Activate()
If ActiveSheet Is Tabelle1 Then Application.Calculation = xlCalculationManual
End Sub

Private Sub Workbook_Deactivate()
Application.Calculation = xlCalculationAutomatic
End Sub

' ********************************************************************** 
' Modul: Tabelle1 Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private Const TIMER_SECOND As Long = 2
Private Const CELLS_TO_CALCULATE As Long = 2

Private Sub Worksheet_Activate()
Application.Calculation = xlCalculationManual
End Sub

Private Sub Worksheet_Deactivate()
Application.Calculation = xlCalculationAutomatic
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
      If .Address = "$A$1" Then _
        Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, TIMER_SECOND), _
           Procedure:="'" & CodeName & ".prcTimer """ & .Offset(0, 1).Address & """'")
  End With
End Sub

Friend Sub prcTimer(ByVal pvstrAddress As String)
Static slngCount As Long
With Range(pvstrAddress)
    Call .Calculate
    slngCount = slngCount + 1
    If slngCount < CELLS_TO_CALCULATE Then
      Call Application.OnTime(EarliestTime:=Now + TimeSerial(0, 0, TIMER_SECOND), _
       Procedure:="'" & CodeName & ".prcTimer """ & .Offset(0, 1).Address & """'")
    Else
       slngCount = 0
    End If
End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Gruß, Mullit

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige