Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formeln einsetzen; erst d. Werte ersetzen wenn ..

Formeln einsetzen; erst d. Werte ersetzen wenn ..
Peter
.. wenn Formeln berechnet sind
Guten Abend
Mit nachfolgendem Code trage ich mir in einem Bereich, der etwa 6000 Zellen umfasst eine Summenprodukt-Formel ein und ersetze dann die Formeln durch die entspreche
Sub FormelSummenprodukt_auswerten()
With Sheets("Auswertung").Range("obenlinks:untenrechts")
.Formula = "=SUMPRODUCT((psWer=$A9)*(psDatum>=E$3)*(psDatum

Bis jetzt waren weniger Zellen involviert und es hat geklappt. Nun habe ich den Eindruck, dass bevor die viele Zellen ausgewertet sind (allso noch den Wert NULL haben), Excel bereits .Formula = .Value anwendet und somit die Ergebnisse nicht stimmen.
Da die Berechnung erforderlich habe ich Application.Calculation auch nicht auf manuell gesetzt, sondern auf automatisch belassen.
Wäre froh, wenn mir jemand einen guten Ratschlag geben resp. die Lösung aufzeigen kann, dass die .Formula = .Value erst ausgeführt wird, wenn die Formeln ausgewertet sind.
Danke und Gruss, Peter
Anzeige
Du musst das Ersetzen physisch v.Fml-Eintragen...
04.11.2010 01:30:50
Luc:-?
…trennen, Peter,
dazu eignet sich die Ereignisprozedur Worksheet_Calculation. Das Ereignis, das hiermit ausgewertet wdn kann, tritt unmittelbar nach Berechnungsabschluss ein.
Gruß Luc :-?
AW: Du musst das Ersetzen physisch v.Fml-Eintragen...
04.11.2010 06:07:29
Peter
Guten Tag Luc
Danke für die Antwort. Allerdings habe ich nicht verstanden, was ich konkret machen muss. Könntest du mir auf die Sprünge helfen und das konkretisieren?
Danke!
Peter
Anzeige
AW: Formeln einsetzen; erst d. Werte ersetzen wenn ..
04.11.2010 06:32:01
hary
Hallo Peter
was Luc meint ist, dass Du Dein Makro trennst.

Sub FormelSummenprodukt_auswerten()
With Sheets("Auswertung").Range("obenlinks:untenrechts")
.Formula = "=SUMPRODUCT((psWer=$A9)*(psDatum>=E$3)*(psDatum

Diesen Code in den Code in die Tabelle Auswertung. Dieser wird erst nach der Berechnung ausgefuehrt.

Private Sub Worksheet_Calculate()
With Sheets("Auswertung").Range("obenlinks:untenrechts")
.Formula = .Value
.NumberFormat = "#,##0"
end with
End Sub

gruss hary
Anzeige
AW: Formeln einsetzen; erst d. Werte ersetzen wenn ..
04.11.2010 08:12:55
Peter
Hallo zusammen
Vielen Dank für die Antworten.
Ich muss jetzt noch etwas ausholen.
Ich rufe in meiner Tabelle eine ganze Reihe von Codes auf:
Sub Ausfuehren()
Call SpaltenBeschriftung
Call FormelSummenprodukt_auswerten
Call MonatsSummen
Call Bedingte_Formatierung_zuweisen
Call NullSummenLoeschen
Call SortierenFinish
End Sub
Das Problem habe ich nach der Ausführung von FormelSummenprodukt_auswerten. Der Code läuft weiter, ohne, dass die Formeln fertig gerechnet wurden.
Nach Verschiebung des Teil nach Private

Sub Worksheet_Calculate()
scheint das auch noch nicht zu funktionieren, da wohl dieser Code gar nicht aufgerufen wird,  _
sondern vorher bereits die anderen abgearbeitet werden - da die Formeln noch nicht vollständig berechnet und in die Ergebnisse in Werrte umgewandelt wurden, ist die Datei beim Weiteren Ablaufen sehr träge.
Wie muss ich das anstellen, dass "FormelSummenprodukt_auswerten" vollständig berechnet wird,  _
BEVOR irgend etwas anderes passiert.
Danke für jeden Hinweis.
Gruss, Peter

Anzeige
AW: Formeln einsetzen; erst d. Werte ersetzen wenn ..
04.11.2010 08:25:01
hary
Hallo Peter
ansonsten evtl mit: Application.Wait (Now + TimeValue("0:00:06"))
arbeiten und die Zeit einstellen bis die Formeln berechnet sind.

Sub FormelSummenprodukt_auswerten()
With Sheets("Auswertung").Range("obenlinks:untenrechts")
.Formula = "=SUMPRODUCT((psWer=$A9)*(psDatum>=E$3)*(psDatum

kannst ja mal so testen. Zeit ein wenig erhoehen.
gruss hary
Anzeige
AW: Formeln einsetzen; erst d. Werte ersetzen wenn ..
04.11.2010 08:53:31
Peter
Danke hary
Ich werde nun wohl Spalte für Spalte mit der Formel abfüllen und dann die Werte einsetzen, da Excel sonst überfordert sit.
Gruss, Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige