Registriert seit: 15.11.2016
Version(en): 2010
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
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo,
das dürfte wohl nur mittels VBA lösbar sein.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 15.11.2016
Version(en): 2010
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 15.11.2016
Version(en): 2010
Hallo Schauan
Das habe ich schon begriffen, ist ja nicht zu schwer.
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
... Beilage...?
Würde ich ja machen wenn es eine gäbe
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 15.11.2016
Version(en): 2010
Es scheint, sogar dafür bin ich zu blöd.
Nächster Versuch.
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo Peter,
wenn du deine Datei hochgeladen hast, musst du noch den rechten Button "Attachment hinzufügen" anklicken.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
Off topic:
Da dieser Fehler doch (vor allem in letzter Zeit) sehr häufig gemacht wird und ich höchstselbst
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
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)