Anzeige
Archiv - Navigation
1184to1188
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

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
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
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
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

322 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige