Hallo zusammen,
auf meinen Vorlagen soll in der Fusszeile bei einem Neuen Dokument automatisch das aktuelle Datum erscheinen, doch nach wiederholtem öffnen der Datei darf sich das Datum nicht mehr aktualisieren.
Eine Art von erstellt am 05.05.2005
vielen Dank schon mal
Gruß Bernd
Sub Auto\_Open()
With ActiveSheet.PageSetup
REM .LeftHeader = ""
REM .CenterHeader = ""
REM .RightHeader = ""
REM .LeftFooter = ""
REM .CenterFooter = ""
If .RightFooter = "" Then
.RightFooter = "Erstellt am " + Format(Date, "dd.mm.yyyy")
End If
End With
End Sub
unter XLSTART\personl.xls abspeichern. Die Zeilen mit REM kannst Du weglassen, ist zur Info damit du ggf. das Datum in einem anderen bereich speichern kannst.
Gruß
Christian
Hallo Christina,
das ging ja schnell, bin begeistert.
Ich habe es im Visual BAsic Editor eingefügt Tabelle 1 und in der rechten Fusszeiele &Datum eingefügt, als Vorlage abgespeichert, geschlossen, Datum vom Rechner geändert, Datei wieder geöffnet, Datum hat sich leider aktualisiert.
Was war falsch?
Da ich noch in den Kinterschuhe mit Excel bin benötige ich eine schritt für schritt Anleitung. z.B. Wo und wie Einfügen?
Gruß Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
wenn du wie im obigen Beispiel:
.RightFooter = "Erstellt am " + Format(Date,
„dd.mm.yyyy“)
verwendest, so bezieht sich diese immer auf das aktuelle Datum.
wechsle mal auf folgenden Code, der dir das erstelldatum der Vorlage angibt.
Format(ThisWorkbook.BuiltinDocumentProperties(„Creation Date“), „dd.mm.yyyy“)
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
hallo
wenn ich den Code so eingebe
Sub Auto_Open()
With ActiveSheet.PageSetup
Rem .LeftHeader = „“
Rem .CenterHeader = „“
Rem .RightHeader = „“
Rem .LeftFooter = „“
Rem .CenterFooter = „“
If .RightFooter = „“ Then
.RightFooter = "Erstellt am " + Format(ThisWorkbook.BuiltinDocumentProperties(„Creation Date“), „dd.mm.yyyy“)
End If
End With
End Sub
aktualisiert sich das Datum leider immer noch.
Was stimmt bei dem Code nicht?
Vielleicht könnt Ihr mir eine Beispieldatei zu senden.
Danke schon mal
Gruß Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Bernd,
Ich habe es im Visual BAsic Editor eingefügt Tabelle 1 und in
der rechten Fusszeiele &Datum eingefügt, als Vorlage
abgespeichert, geschlossen, Datum vom Rechner geändert, Datei
wieder geöffnet, Datum hat sich leider aktualisiert.
Was war falsch?
Du hast Christians Lösung „ausgehebelt“ dadurch, dass du „&Datum“ in die rechte Fußzeile eingefügt hast. Das AutoOpen-Makro tut NICHTS, wenn in der rechten Fußzeile schon was drinsteht - es soll dann es ja auch nichts verändern.
Dass sich jetzt bei dir das Datum bei jedem Öffnen aktualisiert, liegt daran, dass du mit „&Datum“ da eine Variable reingeschrieben hast, die immer durch das jeweils aktuelle Datum ersetzt wird.
Wenn du nichts in die Fußzeile geschrieben hättest, hätte AutoOpen beim ersten Öffnen das dann aktuelle Datum (als festen Text, nicht als Variable) reingeschrieben. Wenn du die Datei dann so speicherst, würde das Datum beim späteren Öffnen nicht verändert.
Auch wenn du statt „&Datum“ z. B. den Text „07.05.2005“ in die Fußzeile schreibst, lässt AutoOpen diesen Wert unverändert.
Spaguzzis Lösung mit „Creation Date“ funzt natürlich auch. Dann steht eben nicht das erste Öffnen- sondern das Erstellungsdatum drin
Grüße aus Kamp-Lintfort
Erich
teste mal folgenden Code:
( ich hab ihn noch nicht getestet.)
in „diese Arbeitsmappe“:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
With ActiveSheet.PageSetup
.RightFooter = "erstellt am " & Format(ThisWorkbook.BuiltinDocumentProperties(„Creation Date“), „dd.mm.yyyy“)
End With
End Sub
schick doch mal deine Datei dann kann man ja schauen welcher Fehler hier noch zu lorrigieren ist.
mfg
Spaguzzi
Ps.: wenn du eine neue Vorlage z.B. heute anlegst, so steht auch das heutige Datum in der Fußzeile.
schau dir die gleiche Datei morgen an, dann müsste das Datum "eingefroren " sein.
Hallo Bernd,
Mein Vorschlag:
Erstelle einen neuen Menüeintrag in der Menü-Leiste „Datei“ oder einen neuen Button in einer Symbolleiste. Diesen ordnest du eines der beiden folgenden Makros zu.
Das erste Makro zeigt den Dialog „Datei neu“ an und ändert anschließend in allen Tabellen der Datei die Kopf- und Fußzeilen entsprechend den Einträgen. Die Buchstaben für Dateiname, Registername, Seite und Seitenzahl funktionieren nur in der Deutschen Version. Die Englische Version hat zum Teilandere Kennbuchstaben.
Das zweite Makro zeigt den Dialog „Datei neu“ an und zeigt anschließend für jede Tabelle den Dialo „Seite einrichten“ an, dabei wird in der Fußzeile für den mittleren Text schon der vorgegebene Text eingetragen.
Die Makros kannst du natürlich beliebig anpassen, aber das Prinzip dürfte klar sein.
Das Makro muß du in der Datei PERSONL.XLS speichern, oder einer anderen Datei, die beim Start von EXCEL automatisch geöffnet wird.
Sub Meine\_neue\_Datei()
Application.Dialogs(xlDialogNew).Show
For Each Tabelle In ActiveWorkbook.Sheets
With Tabelle.PageSetup
.LeftHeader = ""
.CenterHeader = "&N, &B" 'Dateiname, Blattname
.RightHeader = "gedruckt am &D" ' Datum
.LeftFooter = "Erstellt von " & ActiveWorkbook.BuiltinDocumentProperties("Author") & " am " & Format(Now, "DD.MM.YYYY hh:mm:ss")
.CenterFooter = ""
.RightFooter = "Seite &S von &A" 'Seite von AnzahlSeiten
End With
Next
End Sub
Sub Meine\_neue\_Datei2()
Application.Dialogs(xlDialogNew).Show 'Dialog "Datei Neu" anzeigen
Erstelldatum = Format(Now, "DD.MM.YYYY")
For Each Tabelle In ActiveWorkbook.Sheets
With Tabelle.PageSetup
' .LeftHeader = ""
' .CenterHeader = ""
' .RightHeader = ""
' .LeftFooter = ""
.CenterFooter = "Erstellt am " & Erstelldatum
' .RightFooter = ""
End With
Application.Dialogs(xlDialogPageSetup).Show 'Dialog "Seite einrichten" anzeigen
Next
End Sub
Gruß
Franz
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hall Erich,
gewusst wie, danke schön.
Gruß Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Christina,
Danke für deine Hilfestellung, Erich hat mit seiner Vermutung ins Schwarze getroffen. Jetzt funktioniert meine Datei.
Ich habe das Makro einer Grafik zugeordnet.
Gibt es eine Möglichkeit das Makro beim Abspeichern auszuführen. Und noch ein weiteres Problem, wie kann ich meine Vorlage dazu bringen immer eine Zahl beim Dateinamen hochzuzählen (Rechnung 1 beim ersten Speichern, Rechnung 2 beim zweiten Speichern u.s.w.
Gruß Bernd
PS:Ihr seit spitze
Danke
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
zur 1. Frage
Ich habe das Makro einer Grafik zugeordnet.
Gibt es eine Möglichkeit das Makro beim Abspeichern
auszuführen. Und noch ein weiteres Problem, wie kann ich meine
Vorlage dazu bringen immer eine Zahl beim Dateinamen
hochzuzählen (Rechnung 1 beim ersten Speichern, Rechnung 2
beim zweiten Speichern u.s.w.
Hi Bernd,
Alt+F11, Doppelklick auf „DieseArbeitsmappe“
Private Sub Workbook_BeforeClose(Cancel As Boolean)
End Sub
reinkopieren und zwischen Private und End kopierst du deinen Code aus deinem Makro der zwischen Sub und End steht. Links in der Liste wechselst du zwschen DiesArbeitsmappe, tabelle1, tabelle2 usw immer mit Doppelklick.
Gruß
Reinhard
zur 2.ten Frage
Gibt es eine Möglichkeit das Makro beim Abspeichern
auszuführen. Und noch ein weiteres Problem, wie kann ich meine
Vorlage dazu bringen immer eine Zahl beim Dateinamen
hochzuzählen (Rechnung 1 beim ersten Speichern, Rechnung 2
beim zweiten Speichern u.s.w.
Hi Bernd,
gehe wieder in den Code von „DieseArbeitsmappe“ und gib folgendes ein:
Private Sub Workbook_Open()
Close
Open „zähler.txt“ For Input As #1
Input #1, zahl
zahl = zahl + 1
ActiveWorkbook.SaveAs Filename:=„Rechnung“ & zahl & „.xls“
Close
Open „zähler.txt“ For Output As #1
Print #1, zahl
Close
End Sub
Sub einmalig()
Close
Open „zähler.txt“ For Output As #1
Print #1, 0
Close
End Sub
Dann stelle den Cursor beliebig in irgendwo in den Code von der Sub einmalig() und drücke F5, das Makro wird etjt ausgeführt, d.h. die datei zähler.txt erstellt.
Das Sub einmali kannst du auch später mal benutzen wenn du die Recnungsnummer korrigiern musst, dann die aktuelle ummer anstelle der 0 eintragen lassen
Jetzt die Datei als Name.xlt abspeichern.
Gruß
Reinhard
Hallo Reinhard,
langsam steh ich im Wald. Ich habe jetzt über eine Stunde getestet, doch ohne das Ziel zu erreichen.
Mal funktioniert das hochzählen, dann wieder das Datum, dann mal wieder nichts.
Bitte eine Anleitung für Duimmis von A bis Z.
Danke
Gruß Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]