Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1648to1652
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 mit Makro anpassen

Formeln mit Makro anpassen
02.10.2018 00:44:19
Easyd
Hallo zusammen
Ich habe da eine Idee und weiß nicht ob sich das umsetzen lässt.
Man stelle sich vor ich habe eine recht große Datei gebaut mit tonnenweise Berechnungen und verschiedensten Formeln.
Nun fiel mir natürlich hinterher ein dass ich meine Berechnungen der Übersichtlichkeit halber besser runden sollte. Mit suchen und ersetzen über alle Blätter zu arbeiten wird nicht funktionieren weil die bestehenden Formeln alle unterschiedlich sind.
Gäbe es da eine irgendwie geartete vba Lösung für?
Mir fällt nix ein und ich befürchte da kommt eine sehr kleinteilige Korrekturarbeit auf mich zu...
Lässt sich da ein replace Befehl schreiben mit einem Platzhalter oder so? Sowas im Sinne von suche =* und ersetze druch =runden(*;0)?
Bin dankbar für alle Anregungen.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formeln mit Makro anpassen
02.10.2018 07:40:38
MCO
Moin!
Sicher geht das:
Sub test()
For Each cl In Cells.SpecialCells(xlCellTypeFormulas)
cl.FormulaLocal = "=runden(" & Replace(cl.FormulaLocal, "=", "") & ";2)"
Next cl
End Sub
Gruß, MCO
AW: Formeln mit Makro anpassen
02.10.2018 10:54:41
EasyD
Hey
vielen Dank!
irgendsoetwas hatte ich mir ja auch gedacht. Hab's getestet, funktioniert eigentlich auch.
ABER:
Der Test funktioniert einwandfrei auf einem stinknormalen Blatt mit ein paar Formeln drauf.
Ich bekomme aber einen Anwendungs- oder objektdefinierter Fehler...
Kann es sein, dass ich da ein Problem habe weil ich auf sämtlichen Blättern mit Tabellenformatvorlagen gearbeitet habe (und dort sind die zu ändernden Formeln drin). Dürfte doch aber eigentlich keinen Unterscheid machen oder?
Oder kann es ein Problem sein, wenn ich auf den Blättern auch (ein paar wenige) Formeln drin habe, die als Ergebnis keine Zahl (sondern einen Text)liefern? Mein Ansatz war - von DIESEN Formeln gibt's nur eine handvoll und wenn ich diese Formeln mit dem Code runde, sollte ein #WERT rauskommen den ich ja sofort sehe und dann die Rundung wieder raus nehmen kann.
Ich sehe ja im Debug-Modus an welcher Stelle der Code hängt. Ich tue mich aber immer noch sehr schwer heraus zu finden was denn nun die Ursache für den Fehler ist.
im übrigen meine einzigen zwei Änderungen zu deinem Code:
- ich musste vorher noch den Blattschutz aufheben
- ich runde auf -2 (100er Zahlen)
Anzeige
AW: Formeln mit Makro anpassen
02.10.2018 11:40:37
EasyD
Hey MCO
Problem hat sich geklärt, siehe unten Daniel's Beitrag zum Thema.
Danke!
AW: Formeln mit Makro anpassen
02.10.2018 09:29:38
daniel
Hi
brauchst du gerundete Ergebnisse oder soll nur die Anzeige auf dem Bildschirm gerundet werden damit es übersichtlicher ist?
bedenke das auf eine NK-Stelle gerundet das Ergebnis von 1/3 * 3 nicht 1 ist, sondern 0,9.
nur für die Anzeige würde es ja auch reichen, wenn du im Zahlenformat der Zellen die gewüschten Nachkommastellen einstellst, dann werden nur diese angezeigt, aber für die Berechnung wird dann der vollständige Wert angezeigt (was dann zur folge hat, dass obiges Beispiel mit angezeigen 0,3 * 3 dann 1 als Ergebnis haben kann)
zusätzlich gäbe es noch die Möglichkeit, in Erweiterte Optionen - Beim Berechnen dieser Arbeitsmappe - Genauigkeit wie angezeigt festlegen auszuwählen.
zusammen mit der Einstellung der anzuzeigenden NK-Stellen in den Zahlenformaten solltst du dann dein Wunschergebnis bekommen.
Gruß Daniel
Anzeige
AW: Formeln mit Makro anpassen
02.10.2018 10:42:25
EasyD
Danke für den Hinweis Daniel,
Mit der Anzeige und/oder dem Zahlenformat zu arbeiten habe ich ebenfalls überlegt, scheidet aber m.E. aus.
Grund - ich will nicht auf Nachkommastellen runden, sondern auf 100 EUR
Mit Übersichtlichkeit meinte ich, dass ich einen riesengroßen Zahlenfriedhof habe und mit 100er Zahlen liest sich das einfach besser.
Aber nach deinem Hinweis überlege ich, ob das überhupt geht das Zahlenformat auf 100 zu runden. Wenn man dann gleichzeitig noch auf Genauigkeit wie angezeigt einstellt, ist das Ergebnis ja im Grunde das gleiche als würde ich gleich die Formel runden....
Anzeige
AW: Formeln mit Makro anpassen
02.10.2018 11:00:55
daniel
HI
du könntst über das Zahlenformat dir nur die Tausender mit einer NK-Stelle anzeigen lassen und dann die Nullen änhängen.
Benutzerdefiniertes Zahlenformat: 0,0."00"
ist nur etwas störend mit dem Komma.
die Formeln automatisiert umwandeln wird nur per VBA-Code gehen. ohne VBA fällt mir grad kein praktikabler Weg ein
dim Zelle as Range
for each Zelle in activeSheet.Cells.SpecialCells(xlcelltypeformulas, 1)
Zelle.FormulaR1C1 = "=Round(" & mid(Zelle.Formular1c1, 2) & ",-2)"
Next
Gruß Daniel
AW: Formeln mit Makro anpassen
02.10.2018 11:39:57
EasyD
Danke Daniel
die Formeln umzuwandeln funzt wie geschmiert!
Dauert nur ewig, liegt aber an der schieren Masse.
und was das Zahlenformat angeht - die Optik spielt schon eine Rolle (abgesehen von der Übersichtlichkeit). Ein Format wie 3560,300 (für 3.560.298) finde ich da wie du auch eher störend.
Anzeige
AW: Formeln mit Makro anpassen
02.10.2018 12:27:35
Daniel
Hi
Schalt mal die automatische Neuberechnung der Formeln und die Events aus, bevor du das Makro startet.
Das könnt schon was bringen.
Ansonsten ließe sich der Code schon noch mit etwas Aufwand beschleunigen, wenn man zuerst ermittelt, welche Zellen die gleiche Formel enthalten, so dass man nicht jede Zelle einzeln umwandelt, sondern alle Zellen mit gleicher Formel gemeinsam.
Gruß Daniel
AW: Formeln mit Makro anpassen
02.10.2018 13:37:02
EasyD
oh ja
Events aus machen - Spitzen Idee
gleichartige Formeln gibt's leider sehr wenige ;)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige