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

VBA datumsabhängig Zellinhalt ändern ('hardcoden')

VBA datumsabhängig Zellinhalt ändern ('hardcoden')
08.11.2023 19:34:04
zabbn
Hi,
kann man mit VBA an einem bestimmten Datum (Ende des Monats, 23:59) den Zellinhalt von einer Berechnung in eine Zahl umwandeln? Es sollten zudem alle Formeln daran gehindert werden sich zu aktualisieren.

Soll heißen:
In Zelle A1 steht zb:
=Wenn(A2>1;B1*C1;D1*E1)

Und das Ergebnis ist zb 1 bzw 0
Dann soll am 1. Eines neuen Monats diese Zelle umformatiert werden, dass ihr Inhalt lautet:
1
Bzw
0 und zwar nicht als Ergebnis einer Berechnung sondern als Zahlenwert, sozusagen das Ergebnis 'hard-gecoded'.
Hintergrund:
Die Excel Tabelle berechnet jeden Monat dieselben Dinge in Abhängigkeit einiger Variablen, die manuell eingetragen werden. Am Ende des Monats sollen alle Berechnung gespeichert werden (als Zahlenwert, 'hardcoded'), um eine Jahresaufstellung zu erlauben. (Es gibt dann zwölf Monatsspalten mit den Zahlenwerten eines jeden Monats als Auflistung).
Ich weiß, dass hierfür eine Database wohl das richtige wäre, habe hierzu jedoch keine Kenntnisse. Leider auch nicht zu VBA, aber denke, dass das Recht einfach umsetzbar sein müsste?
VG zabbn

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 06:36:45
ralf_b
ja das geht.

Am besten natürlich von Hand. Es ist ja nicht immer sicher das die Datei am Monatswechsel geöffnet ist.
Soll vba etwas in einer Datei zu einem Termin ändern muß die Datei offen sein.

Mit "Excel gut" weist du natürlich wie du die Formeln mit wenigen Klicks in Werte verwandelst.
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 09:14:20
MCO
Moin!

Alle Daten des Sheets als Zahlen per VBA einfügen geht so:
Sub Makro1()'

Cells.Copy
Cells.PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, _
SkipBlanks:=False, _
Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
End Sub


Wahrscheinlich hättest du das mit "Makro aufzeichnen" auch rausbekommen.

Den Zeitpunkt musst du dann nochmal definieren, da das ausgelöste Makro nur aus einer geöffneten Datei stattfinden kann.

Denkbar wäre vom Prinzip:

Datei öffnen, Datum prüfen: Wenn Monat(letzte Speicherung) Monat (Tagesdatum), dann autom. Berechnung ausschalten, alle Formeln in Werte wandeln.... pdf generieren, Kopie speichern, email schreiben, Formeln wieder einfügen, Berechnung einschalten, Meldung machen..... was auch immer.

Ist es das was du vorhast?
Gruß, MCO
Anzeige
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 09:19:28
zabbn
Danke für deine Antwort!
Datei öffnen, Datum prüfen: Wenn Monat(letzte Speicherung) Monat (Tagesdatum), dann autom. Berechnung ausschalten, alle Formeln in Werte wandeln....
Ist ziemlich genau was ich suche. Die Berechnung müsste allerdings schon beim öffnen gestoppt werden
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 11:52:03
MCO
... möglicherweise war ich doch zu optimistisch, was das Ausbremsen der Berechnung angeht.

Ja, man kann es verhindern, aber das muss man abschalten BEVOR man die Datei öffnet. Und das ist lästig...

Was wäre denn, wenn man die Formeln komplett rausnimmt und nur einsetzt, wenn tatsächlich berechnet werden soll? Das könnte über eine Schaltfläche passieren.
Beim Speicher könnte man dann das Ganze wieder in Werte wandeln und so eine automatische Änderung zum nächsten Öffnen verhindern.

Ein Makro, was alle Formeln eines Blattes in VBA umwandelt, kann ich dir geben, wenn das für Dich in Frage kommt. (Nützlich für Blätter mit vielen Formeln)
Wenn es nur wenige Formeln sind, kommt natürlich auch in Frage, die Werte direkt per VBA zu berechnen und einzutragen.

Also: Datei mit Festwerten wird geöffnet, Berechnung wird manuell angestossen und sofort wieder in Fixwerte gewandelt.

Was meinst du? Spiel mal ein bissl rum und schieb ne Beispieldatei hoch.

Gruß,MCO
Anzeige
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 17:38:27
zabbn
Das klingt sehr vielversprechend, ich mache mich dran, sobald ich Zeit habe!
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
12.11.2023 15:15:53
zabbn
Ich habe die fraglichen Passagen im Blatt "!raw" markiert. Die Formeln die aktuell in Zeilen 4-35 stehen sollten per VBA kopiert werden, deren berechnete Werte dann für (nur) den aktuellen Monat in Zeilen 40-72 kopiert werden. (Siehe excel sheet).
Das wäre sehr elegant und würde die Handarbeit sparen, und mir einen Einstieg in VBA bereiten. Ich mache mal einen VBA crash-Kurs bis ggf. zu deiner Antwort.
https://www.herber.de/bbs/user/164219.xlsx
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
13.11.2023 12:13:42
MCO
Hallo Zabbn!

Was ist denn das für eine Tabelle?! Die Formel kann doch keiner mehr nachvollziehen, schon gar nicht mit den Mengen an Texten!

Ja, ich hab die Formeln ausgelesen. Sind als Anweisung vorformatiert im Anhang.
https://www.herber.de/bbs/user/164237.txt
Aber schön ist und wird es nicht. Die Zeilen sind zu lang für den VBA-Editor und müssten alle noch von hand umgebrochen werden (mit TEXT" & _ [Zeilenumbruch] "weiterer TEXT"

Die Formeln standen ja hier nicht zur Debatte, dennoch seh ich da grossen Änderungsbedarf.
Warum bezieht sich alles auf ein Datum, das steht bei den Monaten aber plötzlich als TEXT da?

Neue Ansatz?

Einfach die Bestehenden Formeln als Werte unten einfügen.
Sub Formel_Wertekopie()

With Sheets("raw")
.Rows("4:35").Copy
.Range("A41").PasteSpecial 12
End With
End Sub


Gruß, MCO
Anzeige
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 08:48:59
zabbn
Hi, händisch wäre das natürlich kein Problem. Das Problem ist allerdings, dass sich beim Monatswechsel Variablen zur Berechnung ändern und dadurch die Ergebnisse des Vormonats unbrauchbar werden. Deshalb wäre ein Skript sehr hilfreich, dass die Berechnung beim öffnen stoppt, wenn der Monatswechsel eingetreten ist. Dann müsste die Datei auch nicht während des Wechsels offen sein. Ich könnte einen Wert monatlich in eine Zelle händisch eintragen, zb aktuell 11 für November. Per VBA könnte man dann prüfen ob der aktuelle Monat großer oder kleiner ist als dieser Wert. Das würde ja dann bedeuten, das ein Monatswechsel eingetreten ist. Wenn das zutrifft würden die Formeln nicht berechnet und die Excel Tabelle quasi gesperrt. Gibt es diese Möglichkeit?
Anzeige
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 10:23:48
Sigi.21
Hallo,

Zitat: "Das Problem ist allerdings, dass sich beim Monatswechsel Variablen zur Berechnung ändern und dadurch die Ergebnisse des Vormonats unbrauchbar werden."
Dann leg dir doch eine Monatstabelle mit den 12, 24, 36, etc. Variablen an.
Per Sverweis() holst du dir die jeweils mtl. richtige(n) Variable(n).

Gruß Sigi
AW: VBA datumsabhängig Zellinhalt ändern ('hardcoden')
09.11.2023 17:47:48
zabbn
Danke dir für den Hinweis Sigi, das wäre auch möglich und klingt sinnvoll, entspricht aber nicht dem Zweck meiner Blätter, in dem ich sowohl wiederkehrende als auch Einzelausgaben eines Monats/Jahres in einem Blatt sammeln will, um die Eingabe zu erleichtern. Diese werden dann für ein ganzes Jahr berechnet und für jeden einzelnen Tag auf einem anderen Blatt aufgelistet. Ist vermutlich so in Worten schwer nachvollziehbar.
MCO hatte da einen interessanten Hinweis, ich werde eine Beispieldatei hochladen, sobald ich Zeit finde, dann wird es sicher verständlicher. Danke aber schon eimal.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige