Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bestimmte Zeilen nur nach Button Click rechnen lassen

Bestimmte Zeilen nur nach Button Click rechnen lassen
04.04.2024 17:02:15
Thorsten
Hallo,
ich habe eine Excel Datei mit 3 verschiedenen Worksheets (WS 1, WS 2 und WS 3).
WS 1 ist für mich ein reines Eingabeworksheet.
WS 2 und WS 3 werden dann die Resultate ausgegeben.
Ich möchte jetzt, dass in WS 1 immer bestimme Zeilen (z.B. 26, 27 und 35) NICHT automatisch rechnen. Die anderen Zeilen aber schon.
Die eben genannten Zeilen sollen erst dann aktiviert werden, wenn in WS 1 oder WS 2 ein bestimmter Button („berechnen“) angeklickt wird.

Gibt es irgendein VBA “UsedRange.Rows().UnCalculate” oder ähnlich ?

Ich habe leider hierzu nichts gefunden. Oder vielleicht denke ich (als Laie) auch zu einfach und es geht nur etwas komplizierter 😊.
Vielen Dank für Eure Hilfe.
Thorsten

Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
04.04.2024 18:07:32
daniel
HI
der einfachste Weg dürfte sein, dass der Button die Berechnung komplett ausführt und nur die Ergebnisse in die Zellen zurückschreibt.
wenn die Formel kompliziert zu programmieren ist, kann der Button auch die Formel in die Zelle schreiben und dann durch ihren Wert ersetzen.

Gruß Daniel
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
04.04.2024 18:56:05
Thorsten
aha.
Danke für die Antwort.

wie sähe dies denn dann als Code aus ?
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
04.04.2024 19:00:54
daniel
with Range("A1")

.FormulaLocal = "=hier dein Formel, so wie sie jetzt in der Zelle steht"
.Formula = .Value
End with
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
05.04.2024 17:47:42
thorsten
ok.
Danke
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
08.04.2024 18:45:44
thorsten
Hallo Daniel,
sorry für verspätete Rückantwort, aber die letzten Tage habe ich versucht mal den Code irgendwie einzubauen. Und da es irgendwie nicht funktionierte, hab ich ein bisschen selbst versucht es zu lösen. Bin aber (Stand heute) gescheitert.

Deswegen mal sehen, ob Du eine Lösung hast.

Ich hab jetzt mal mein Modell ganz, ganz vereinfacht damit ich diese hier auch teilen kann.

https://www.herber.de/bbs/user/168571.xlsm

Wie vorher schon gesagt: es gibt 3 verschiedenen Worksheets (WS 1, WS 2 und WS 3).
WS 1 ist für mich ein reines Eingabeworksheet.
WS 2 ist eine Cash Flow Berechung
und WS 3 ist einen Sensibilitätsanalyse.

Wie vor ein paar Tagen erwähnt, dass Ursprungsmodell ist viel komplexer und genau in WS 3 (Sensibilitätsanlyse) macht es mir Probleme, da das Modell immer wieder neu berechnet und somit ich viel Zeit verliere.

Was ich möchte ist, dass WS 3 immer nur dann neu berechnet wird, wenn ich auf den „Berechnen EIN“ Button gehe.

Dein Vorschlag „.FormulaLocal = …" funktioniert eigentlich ganz gut. V.a. damit die „Dauer-“Berechnungen damit ausgesetzt werden.
Allerdings nimmt er leider nur einen Wert (in diesem Fall den aus der Zelle D7) und macht die Sensibilitätsanalyse.
Ich brauch aber, dass er mir die anderen % in der Zeile (0%, 5%, 10%, 15%, 20% = D 7 bis H 7) auch einmal durchrechnet und dann in der Tabelle D 8: H 12 die jeweiligen Ergebnisse auswirft. D.h. der Wert in D7 soll sich nach Buttom drücken verändern.

(Im Excel anbei hab ich dies in WS3 mit DUNKEL ORANGE Hintergrund markiert ist.
Und mit gelben Hintergrund wären die Originalberechnungen, die halt in der obigen Tabelle auch erscheinen sollten)

Wie geht das ?

Vielen Dank im voraus
Thorsten
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
09.04.2024 18:38:50
Oppawinni
Ich weiß ja nicht, ob man da wirklich VBA braucht.
Kannst du dir nicht irgendwo eine Zelle hinsetzen, die einen Wahrheitswert, also Wahr oder Falsch enthält und deine
Formeln so bauen, dass WENN in diese Zelle Wahr enthält, dann deine Formel berechnet wird, sonst eben z.B. eine Konstante liefert.
Wie du die Zelle dann zwischen wahr und falsch schaltest, wäre dann ein anderes Thema, aber auch das geht ohne VBA.
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 09:26:11
schauan
Hallöchen,

mal zwei Überlegungen

1) eventuell vor .Formula = .Value ein extra - Calculate ausführen
falls das nicht reicht,

2) eventuell nach Einsetzen der Formel auch die Datentabelle / Mehrfachoperation nochmals per Code anlegen. Dazu löschst Du den Bereich und erstellst die Datentabelle neu. Könnte dann insgesamt so aussehen:

With Range("D2")

.FormulaLocal = "=hier dein Formel, so wie sie jetzt in der Zelle steht"
With Range("E8:H12")
.ClearContents
.Table RowInput:=Range("D2"), ColumnInput:=Range("D3")
End With
Calculate
.Formula = .Value
End with

Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 14:21:51
Oppawinni
Ich wüsste immer noch gerne, warum man da VBA bemühen muss.
Ginge das nicht einfach etwa so:
https://www.herber.de/bbs/user/168605.xlsx
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 15:20:48
thorsten
Hallo Oppawinni,
vielen Dank für Deinen Input, aber das eigentliche Modell ist leider etwas komplexer. Dein Ansatz ist echt super (weil halt auch total einfach), aber irgendwie ist er im dem komplexeren Modell leider nicht so leicht anwendbar. Ich muss da mal sehen, ob ich irgendwie damit weiter komme :-) (auch mit dem Beitrag von Schauan)
Trotzdem vielen Dank für Deinen Input (und auch die Excel :-)).
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 16:06:40
Oppawinni
Wie viele Formeln greifen denn nach außerhalb ?
Also wenn du das alles per VBA abfangen willst, ist das mit hoher Wahrscheinlichkeit aufwändiger, als nur die Formeln etwas zu ändern und vor allem..
...da fliegst du bei Änderungen nicht gleich wieder auf die Fresse und quälst dich durch den (eigentlich überflüssigen) VBA-Code, um das zu korrigieren.........
Aber, wie man so sagt: "Wenn's Spaß macht" oder "Jedem das Seine"
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 16:26:28
thorsten
es ist nix in Stein gemeisselt.

aber das Modell ist schon komplexer mit mehreren Sensibilitätsberechnungen. Und bisher rechnet das Modell immer wieder neu, obwohl eigentlich (mit Deinem Ansatz) die Berechnungen der Tabelle ausgeschaltet sind. Wie schon geschrieben, Dein Ansatz finde ich echt gut und er funktioniert.
Aber halt nur teilweise :-).
Deswegen muss ich nochmal tüfteln.
Danke

Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 16:32:08
Oppawinni
Wie, was funktioniert nur teilweise?
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 17:26:19
Oppawinni
Zu beachten wäre u.U., dass es auch sogenannte volatile Funktionen gibt, also solche, die immer neu berechnet werden.
Darunter fallen z.B.:
Bereich.Verschieben
Indirekt
Heute
Jetzt
Zufallszahl
Zufallsbereich
Ggf müsstest du auch hier dafür sorgen, dass damit keine weiteren Berechnungen getriggert werden.
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 17:58:48
thorsten
ja. genau darum geht es.
ich muss irgendwie die verschiedenen Berechnungen / Funktionen die gleichzeitig ablaufen, aufeinander besser abstimmen.
Und das ist halt nur mit probieren, probieren, probieren, möglich.
Danke
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 15:21:55
thorsten
Hallo Schauan,
Vielen Dank für Deinen Beitrag.
ich hab das mal so eingebaut und da krieg ich aber eine Fehlermeldung bei ".ClearContents" (= 4. Zeile)


Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 15:56:51
schauan
Hallöchen,

zwei kleine Änderungen hinsichtlich der betroffenen Bereiche:

Sub test()

With Range("D2")
.FormulaLocal = "=('WS 1'!C3+'WS 1'!C4+'WS 1'!C5)*'WS 3'!D2"
Range("D8:H12").ClearContents
Range("C7:H12").Table RowInput:=Range("D2"), ColumnInput:=Range("D3")
Calculate
.Formula = .Value
End With
End Sub
Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 18:54:23
thorsten
Hallo Schauan,
ich hab das jetzt mal so eingebaut. Es gibt zwar keine Fehlermeldung, aber die Berechnungen funktionieren leider nicht.
Anbei die modifizierte Datei:
https://www.herber.de/bbs/user/168626.xlsm

1. Die Formeln sind in E 2 und E 3 (dh. "with Range ("E2") ..." statt vorher D2)
2. Die Tabelle wird leider nur in der 1. Spalte aktualisiert (D8 bis D12), dh. aber auch, dass nur die Formel die in E3 steht angewendet wird.
Dh. eine Formel die wir gar nicht mit "with Range .." angesprochen haben.
3. heisst aber auch, dass der unter 1. genannte Schritt erst gar keine Anwendung findet, denn die darin enthaltene Formel bezieht sich auf die Zeile 7 (D7 bis H7).

Wie kann man das abändern, dass beide Zellen mit ursprünglichen Formeln (E2 und E3) angesprochen werden und dann die Tabelle dementsprechend berechnet wird ?

Danke im voraus



Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
10.04.2024 20:12:32
schauan
Hallöchen,

da gibt's noch einen kleinen Knackpunkt. Wenn die Formel in E2 durch den Wert ersetzt wird, dann rechnet die Mehrfachoperation gleich nochmal. Da es hier nun nur den einen Wert als Datenquelle gibt, eben in den Spalten gleich. Das "falsche" Rechnen wäre wohl auch das Problem einer Formellösung.

Da gäbe es jetzt für meinen Makroansatz 2 Möglichkeiten

1)
Die Berechnung auf manuell setzen. Nachteil: wenn Du was z.B. mit F9 manuell rechnest, rechnet auch die Mehrfachoperation und Du hast wieder die falschen Ergebnisse
Im Prinzip
Calculate
Application.Calculation = xlCalculationManual
.Formula = .Value

2)
Du ersetzt auch die Ergebnisse der Mehrfachoperation.
Im Prinzip
Calculate
Range("C7:H12").Formula = Range("C7:H12").Value
.Formula = .Value



Anzeige
AW: Bestimmte Zeilen nur nach Button Click rechnen lassen
14.04.2024 16:46:33
thorsten
Hallo,
ich glaube wir verrennen uns gerade hier irgendwie.
Irgendwie will es nicht klappen.
Danke für die Bemühungen, aber ich muss mal sehn, was / wie ich das mache.
Sorry, natürlich noch offen
09.04.2024 21:26:57
Oppawinni
..
;

Forumthreads zu verwandten Themen

Anzeige
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