Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1052to1056
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

Formel nur einmal berechnen

Formel nur einmal berechnen
25.02.2009 16:39:21
Andre
Hallo!!
Ich habe eine Spalte mit Zellen in denen eine Formel steht die sich aber nur einmal berechnen soll, da sich der Bezug aus dem sich die Formel zusammensetzt hin und wieder ändert. Darum soll das Ergebnis nur einmal berechnet werden. Ändert sich nun aber der Wert in der Bezugszelle, ändern sich auch alle vorherigen Berechnungen.
Kann man eine Zelle / Formel so einstellen das sie nur einmal Berechnet wird?
Danke im Vorraus
Gruß Andre

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel nur einmal berechnen
25.02.2009 16:48:30
Daniel
Hi
nach dem Berechnen den Wert mit KOPIEREN - INHALTE Einfügen - WERTE fixieren.
das wäre jetzt das einzige, was mir dazu einfällt.
Gruß, Daniel
AW: Formel nur einmal berechnen
25.02.2009 16:51:43
Andre
Hey Daniel!!
Ja, danke.
Hätte es aber ganz gern automatisch.
Gruß Andre
AW: Formel nur einmal berechnen
25.02.2009 16:56:35
Uwe
Hi Andre,
das ließe sich wahrscheinlich mit VBA über das Change-Ereignis lösen, dass immer dann reagiert, wenn in den Quellzellen etwas geändert wird. Problem ist, dass ja erstmal was in die Quellzellen eingetragen werden muss, und die Formelzellen erst danach eingefroren werden darf. Müsste aber lösbar sein.
Dazu wäre es sehr hilfreich, wenn Du eine Beispieltabelle hochlädst, und vielleich noch erklärst woher die Quelldaten kommen und wann die Formel eingefroren werden soll.
Gruß
Uwe
(:o)
Anzeige
AW: Formel nur einmal berechnen
25.02.2009 17:03:54
Andre
Hey Uwe!!
Leider funzt es bei mir nicht mit dem Hochladen.
In der Quellzelle steht immer ein Wert, und zwar der aktuelle Strompreis. Wenn sich der Preis nun ändert möchte ich nicht, daß die alten Berechnungen mit geändert werden. Die nehmen dann nämlich auch den aktuellsten Strompreis an.
Es würde mir also reichen, wenn die Formel nach der ersten Berechnung außer Betrieb geht.
Könnte dir die Tabelle per Mail schicken.
Danke im Vorraus.
AW: Formel nur einmal berechnen
25.02.2009 16:59:37
Daniel
Hi
dann ist die Formel nach der Eingabe sofort weg ohne Chance auf korrektur (dh nur durch vollständige Neueingabe)
willst du das?
Gruß, Daniel
Anzeige
AW: Formel nur einmal berechnen
25.02.2009 17:05:09
Andre
Hey Daniel!!
Ist kein Problem wenn die Formel weg ist!!
schreib doch die Berechnung gleich per VBA ...
25.02.2009 17:01:33
Josef
...in die Zelle, wenn sich in der Eingabezelle was ändert.
Gruß Sepp

AW: schreib doch die Berechnung gleich per VBA ...
25.02.2009 17:07:26
Andre
Hallo Sepp!!
Wie sieht die Formel den per VBA aus?
Gruß Andre
Meine Glaskugel ist zersprungen, deshalb...
25.02.2009 17:10:14
Josef
...weiss ich nicht wie deine Formel aussieht, wenn du mir das verrätst, dann kann ich dir zeigen, wie die Berechnung per VBA aussieht.
Beschreibe aber auch wo die Formel steht und welche Zelle den Eintrag der berechnung auslösen soll.
Gruß Sepp

Anzeige
AW: Meine Glaskugel ist zersprungen, deshalb...
25.02.2009 17:14:51
Andre
Hier die Formel:
=WENN(B6"";Preisentwicklung!D5;"")
Die Formel steht in der Spalte D
Sobalt in der Zelle B6 ein Eintrag vorgenommen wird holt sich die Zelle in Spalte D den aktuellen Strompreis aus dem Arbeitsblatt Preisentwicklung Zelle D5.
Danke im Vorraus
AW: Meine Glaskugel ist zersprungen, deshalb...
25.02.2009 17:22:49
Josef
Hallo Andre,
ins Modul der Tabelle.
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo ErrExit
  If Column = 2 And Target.Count = 1 Then
    Application.EnableEvents = False
    Target.Offset(0, 2) = Sheets("Preisentwicklung").Range("D5")
  End If
  ErrExit:
  Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Meine Glaskugel ist zersprungen, deshalb...
25.02.2009 17:31:37
Andre
Hallo Sepp!!
Es kommt immer eine Fehlermeldung.
Ich könnte dir die Tabelle per Mail zuschicken, leider funzt das Hochladen bei mir nicht.
Gruß Andre
mailadresse steht im Profil! o.T.
25.02.2009 17:32:38
Josef
Gruß Sepp

AW: mailadresse steht im Profil! o.T.
25.02.2009 17:45:38
Andre
Hallo!!
Hatte ein "ä" in meinem Dateinamen, deshalb hat es nicht mit dem Hochladen funktioniert.
Hier also die Datei.
https://www.herber.de/bbs/user/59779.xls
AW: mailadresse steht im Profil! o.T.
25.02.2009 18:14:22
Uwe
Hi Andre,
wenn Du Sepps Code an den schon existieren in dem Tabellenblatt anhängst, sodass das Modul des Tabellenblattes so aussieht:

Private Sub Worksheet_Change(ByVal Target As Range)
Const Bereich = "A4:A52,B4:B52,H4:H52" 'Bereich, der überwacht werden soll (anpassen)
Dim rng As Range, z As Range
Set rng = Intersect(Target, Range(Bereich))
If Not rng Is Nothing Then
If rng(1).Value  "" Then 'damit man die Zelle nicht durch die Entf-Taste sperren kann
Me.Unprotect Password:="feuer1"
rng.Locked = True
Me.Protect Password:="feuer1"
End If
End If
On Error GoTo ErrExit
If Target.Column = 2 And Target.Count = 1 Then
Application.EnableEvents = False
Target.Offset(0, 2) = Sheets("Preisentwicklung").Range("D5")
End If
ErrExit:
Application.EnableEvents = True
End Sub


dann funktioniert es meiner Meinung nach so wie Du es beschrieben hast. Oder?
@Sepp: Ich hoffe Du bist nicht böse, dass ich mich mit "eingeklingt" habe.
Gruß
Uwe
(:o)

Anzeige
AW: mailadresse steht im Profil! o.T.
25.02.2009 18:22:04
Andre
Leider nein!!
Die Bezugszelle ist D5 im Tabellenblatt Preisentwicklung.
Sobalt sich dieser Wert ändert, ändern sich auch die Ergebnisse der Berechnungen der Vormonate.
Es soll z.B. in Zelle D6 die jetztigen 0,2037 € stehen bleiben, wenn sich die Zelle D5 im Tabellenblatt Preisentwicklung ändert.
Gruß Andre
AW: Meine Glaskugel ist zersprungen, deshalb...
25.02.2009 17:36:14
Uwe
Hi Andre,
ich denke Sepp hat da ein Target. vergessen. Die dritte Zeile sollte so aussehen:

If Target.Column = 2 And Target.Count = 1 Then


Dann kommt keine Fehlermeldung mehr.
Gruß
Uwe
(:o)

Anzeige
Besser so.
25.02.2009 17:25:07
Josef
Hallo nochmal,
' **********************************************************************
' Modul: Tabelle2 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo ErrExit
  If Column = 2 And Target.Count = 1 Then
    Application.EnableEvents = False
    If Target <> "" Then Target.Offset(0, 2) = Sheets("Preisentwicklung").Range("D5")
  End If
  ErrExit:
  Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Besser so.
25.02.2009 21:01:12
Andre
Hallo Sepp!!
Ich bin´s nochmal!
Hast du event. noch ne Lösung für mich?
Bis jetzt haut es noch nicht hin.
https://www.herber.de/bbs/user/59788.xls
Gruß Andre
AW: Besser so.
25.02.2009 22:10:47
Bahnhof
Hallo Andre,
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Const Bereich = "A4:A52,B4:B52,H4:H52" 'Bereich, der überwacht werden soll (anpassen)

Private Sub Worksheet_Change(ByVal Target As Range)
  On Error GoTo ErrExit
  If Not Intersect(Target, Range(Bereich)) Is Nothing Then
    Application.EnableEvents = False
    With Target
      If .Count = 1 Then
        If .Value <> "" Then 'damit man die Zelle nicht durch die Entf-Taste sperren kann
          Me.Unprotect Password:="feuer1"
          Target.Locked = True
          
          If .Column = 2 Then .Offset(0, 2) = Sheets("Preisentwicklung").Range("D5")
          
          Me.Protect Password:="feuer1"
        End If
      End If
    End With
  End If
  ErrExit:
  Application.EnableEvents = True
End Sub

Gruß Sepp

Anzeige
AW: Besser so.
25.02.2009 22:49:01
Andre
Hallo!!
Ich danke dir!!
Es klappt!! Ich werd verrückt!!
Besten Dank an alle!!!
AW: schreib doch die Berechnung gleich per VBA ...
25.02.2009 17:25:07
Daniel
Hi
hier mal ne Formel- und VBA-Lösung
https://www.herber.de/bbs/user/59775.xls
die Formellösung hätte den Vorteil, daß du die Preisentwicklung gleich mitdokumentierst (bzw musst)
und so deine Berechnungen auch nachträglich machen kannst.
gruß, Daniel
AW: schreib doch die Berechnung gleich per VBA ...
25.02.2009 18:04:57
Andre
Hallo Daniel!!
Habe jetzt die Datei für dich!!
Komme mit deinem Vorschlag nicht so ganz klar.
https://www.herber.de/bbs/user/59782.xls
Gruß Andre
Anzeige
AW: schreib doch die Berechnung gleich per VBA ...
25.02.2009 18:53:01
Daniel
Hi
dabei ist mein Vorschlag genau das richtige für dich.
Lieder kann ich es auf Grund des Schreibschutzes und des fehlenden Passwortes die Datei nicht ändern, aber wenn du in dem Tabellenblatt "Preisentwicklung" in der Spalte A das Datum als richtiges Datum einträgst (also nur "1.7.2005" und nicht "1.7.2005 bis 31.12.2007") dann kannst du im Tabellenblatt "Strom" und "Verbrauch" die zum Datum gehörigen Preise problemlos mit dem SVERWEIS aus der Preisentwicklungstabelle lesen.
falls du doch lieber einen Fix-Wert für den Strompreis haben willst und zu faul bist, diesen von Hand aus der Liste zu kopieren und lieber uns damit belästigts, würde ich einfach dieses Makro in die Tabellenblätter "Strom" und "Verbrauch" kopieren, dann wird per Doppelklick in die Zelle der aktuelle Strompreis eingetragen:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Cells(3, Target.Column).Value = "Preis pro KWh in €" Then
Target.Value = Sheets("Preisentwicklung").Range("D5").Text
Cancel = True
End If
End Sub


Gruß, Daniel

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige