Clever-Excel-Forum

Normale Version: Formel ignorieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Leute

Problem:
Ich trage in einer Zelle (Beispiel A2) eine Währungsumrechnung ein, die ich extern abfrage.
Ich möchte nun, dass der Wert sich ab heute (Beispiel Datum in A1) nicht mehr verändert, sondern dass die Abfrage künftig ignoriert wird.
Ich habe das bisher mit einem gewollten Zirkelbezug gemacht; also als SONST die Zelle selbst eingetragen, z.B.


in A1 ist ein Datum eingetragen
in A2 ist die Formel {=WENN(A1<=HEUTE();33.33;A2)} eingetragen ("33.33" steht für das Resultat der externen Abfrage)

Das erzeugt einen Zirkelbezug, wenn SONST wahr ist (also das Datum in der Zukunft liegt). Das funktioniert zwar (wenn die iterative Berechnung aktiviert ist), ist aber unbefriedigend, weil dauernd die störende Zirkelbezugswarnung erscheint und auch sonst unerwünschte Folgen auftreten können.

Ich stelle mir vor, dass es eine viel bessere Möglichkeit gibt, die Formel zu ignorieren und den Wert "einzufrieren", also im Beispiel "33.33" zu belassen, wenn das Datum in A1 in der Zukunft liegt.

Für Hilfe wie immer sehr dankbar
Peter Pan
Hallo,

das dürfte wohl nur mittels VBA lösbar sein.
Hallöchen,

Hier mal ein Ansatz. Das Makro kommt in das Codemodul der Tabelle mit den Daten.
Deine Abfrage könnte in A3 sein. Wenn Heute größer oder gleich dem Datum in A1 ist, dann wird der Wert aus A3 übernommen. Wenn so was im Prinzip passt, musst Du natürlich noch die Zellen und die Vergleichsoperatoren anpassen.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
'Events deaktivieren
Application.EnableEvents = False
  'Wenn die Adresse $A$3 ist, dann
  If Target.Address = "$A$3" Then
    'Gehe bei Fehler zur Sprungmarke
    On Error GoTo errorhandler
    'Wenn das Heute >= Datum von A1 dann uebernehme Wert aus A3
    If Date >= Range("A1") Then Range("A2").Value = Target.Value
  'Wenn die Adresse $A$3 ist, dann
  End If
'Ende / Sprungmarke Fehlerbehandlung
errorhandler:
'Events aktivieren
Application.EnableEvents = True
End Sub
Vielen Dank!
Habe versucht, es genau so zu machen.
Funktioniert aber noch nicht.
Bei Datum heute oder älter übernimmt das Blatt die Zufallszahl aus Rates!B2.
Datum jünger ergibt aber 0 anstatt die bisherige Zahl.
Was habe ich falsch gemacht (siehe Beilage)?

Grüße
Peter Pan
Hallöchen,

steuern tust Du da süber die Vergleichsoperatoren, wie ich geschrieben hatte.

If Date >= Range("A1") Then Range("A2").Value = Target.Value


Hier wird verglichen, ob das aktuelle Datum ( Date ) größer oder gleich ist als das in A1. Ist das so, wird übernommen.

Wenn in A1 z.B. der 19.01. steht, passiert heute und morgen nichts. Übermorgen geht's dann los.

Nimmst Du <=, dann wird bis übermorgen übernommen und dann ist Schluss.
Hallo Schauan

Das habe ich schon begriffen, ist ja nicht zu schwer. Blush 

Es funktioniert aber eben nicht, auch nicht, nachdem ich einiges angepasst habe.

Kannst Du bitte das Blatt in der Beilage anschauan?

Besten Dank.
Peter Pan
Hallöchen,

... Beilage...?

Würde ich ja machen wenn es eine gäbe
Es scheint, sogar dafür bin ich zu blöd.

Nächster Versuch.
Hallo Peter,

wenn du deine Datei hochgeladen hast, musst du noch den rechten Button "Attachment hinzufügen" anklicken.
Off topic:
Da dieser Fehler doch (vor allem in letzter Zeit) sehr häufig gemacht wird und ich höchstselbst  Blush anfangs durchaus Verständnisprobleme hatte:
Wäre es technisch nicht möglich, die Datei bereits nach Bestätigung des "Dateien auswählen"-Dialogs hochzuladen?
Löschen sollte natürlich dennoch möglich sein.

Ich schicke auch André eine PN mit meinem Beitrag.

Gruß Ralf
Seiten: 1 2 3