Mfg
Michael Günther
Wie wäre es wie folgt:
Du schreibst in eine Zelle (hier habe ich eine Zelle mit
Einfügen/Namen/Festlegen bzw. auf Neu-Office: Einfügen/Name/Definieren als
"LetzterStart" benannt) via Programm beim Ausführen das aktuelle Datum.
Beim jedem Ausführen wird außerdem geprüft, ob das aktuelle Datum (Date)
größer als das dort gespeicherte ist. Nur in diesem Fall wird das
eigentliche Programm dann ausgeführt.
Die besagte Zelle könntest Du beispielsweise unter der Schaltfläche
verstecken oder auf einem eigenen Blatt erstellen, das Du dann ausblendest
(Format/Blatt/Ausblenden) ...
Der VBA-Code dazu:
'---snip---
Sub NurEinmalTaeglich()
If Range("LetzterStart").Value < Date Then
Call MeinProgramm
End If
End Sub
Sub MeinProgramm()
MsgBox "Das eigentliche Programm!"
Range("LetzterStart").Value = Date
' Speichern erst nachher!
End Sub
'---snip---
In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen
Servus aus Wien,
-Robert Gelbmann-
---
MS MVPCE für Excel
<rgel...@mvps.org>
---"Michael Günther" <Michael....@swhamm.de> schrieb im Newsbeitrag
news:OpUMhfmn$GA.241@cppssbbsa05...
man das war ja ein Klasse Tip. Habe ich gleich ausprobiert. Klappt ganz
wunderbar. Vielen vielen Dank.
Michael
Robert Gelbmann <rgel...@mvps.org> schrieb in im Newsbeitrag:
u17Im2mn$GA.293@cppssbbsa05...
ich habe das Makro wie folgt definiert:
Sub NurEinmalTaeglich()
If Range("LetzterStart").Value < Date Then
Call Schließen
End If
End Sub
Sub Schließen()
Range("A1").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveWorkbook.Save
ActiveWindow.Close
End Sub
Beim ersten Versuch klappt es einwandfrei. Sobald das Datum dann in der
Zelle steht klappt es aber nicht mehr. Was mache ich falsch?
Michael
klappt doch noch nicht. Wenn ich das Datum von heute auf morgen ändere und
die Datei wieder aufrufe steht in der Zelle das aktuelle Datum. Das holt er
sich ja aus den Systemeinstellungen. Kann man das Datum auch so einfügen das
am nächsten Tag immer noch das vom Vortag steht.
Michael
Michael Günther <Michael....@swhamm.de> schrieb in im Newsbeitrag:
eKruRWnn$GA.1160@cppssbbsa06...
| Hallo Robert,
|
| man das war ja ein Klasse Tip. Habe ich gleich ausprobiert. Klappt ganz
| wunderbar. Vielen vielen Dank.
|
| Michael
|
|
| Robert Gelbmann <rgel...@mvps.org> schrieb in im Newsbeitrag:
| u17Im2mn$GA.293@cppssbbsa05...
| | Hallo Michael!
| |
| | Wie wäre es wie folgt:
| |
| | Du schreibst in eine Zelle (hier habe ich eine Zelle mit
| | Einfügen/Namen/Festlegen bzw. auf Neu-Office: Einfügen/Name/Definieren
als
| | "LetzterStart" benannt) via Programm beim Ausführen das aktuelle Datum.
| | Beim jedem Ausführen wird außerdem geprüft, ob das aktuelle Datum (Date)
| | größer als das dort gespeicherte ist. Nur in diesem Fall wird das
| | eigentliche Programm dann ausgeführt.
| |
| | Die besagte Zelle könntest Du beispielsweise unter der Schaltfläche
| | verstecken oder auf einem eigenen Blatt erstellen, das Du dann
ausblendest
| | (Format/Blatt/Ausblenden) ...
| |
| | Der VBA-Code dazu:
| |
| | '---snip---
| | Sub NurEinmalTaeglich()
| | If Range("LetzterStart").Value < Date Then
| | Call MeinProgramm
| | End If
| | End Sub
| |
> ActiveCell.FormulaR1C1 = "=TODAY()"
Da ging es etwas daneben! Der Trick ist ja gerade, daß man/frau nicht die
Tabellenfunktion =HEUTE als Formel verwendet, die sich bei jeder
Aktualisierung verändert und dementsprechend immer dem aktuellen Datum
entspricht.
Bleib daher bei der erwähnten Variante:
ActiveCell.Value = Date
Diese fügt das (in VBA ermittelte) heutige (System)-Datum als statischen
Wert in die betreffende Zelle ein und muß daher nach jedem Programmablauf
kurz vor der Speicherung nochmals eingetragen werden.
wenn Du in die Zelle nicht die Formel "HEUTE()" schreibst
(ActiveCell.FormulaR1C1 = "=TODAY()"), sondern das Ergebnis der
Today-Funktion (ActiveCell.Value = Today()), dann sollte es so
funktionieren, wie Du es Dir vorstellst.
Jörg
"Michael Günther" <Michael....@swhamm.de> schrieb im Newsbeitrag
news:#e$yyhnn$GA.784@cppssbbsa06...
: Hallo Robert,
: | |
: | |
: | | In der Hoffnung geholfen zu haben, verbleibe ich mit einem leisen
: |
: |
: |
:
:
"Jörg Nissen" <joerg....@t-online.de> schrieb im Newsbeitrag
news:uebKgdtn$GA.1148@cppssbbsa06...
: Hallo Michael,
: : |
: :
: :
: