Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
772to776
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
772to776
772to776
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

benutzerdefinierte Fußzeile pflegen

benutzerdefinierte Fußzeile pflegen
19.06.2006 08:57:27
Stefan
Hallo Experten,
ich erstelle mit Excel einen täglichen Statusbericht, der mehrere Blätter enthält. Das Datum des Berichts wird in den Fußzeilen der Blätter dargestellt. Jeden Abend muss ich daher das Datum in den Fußzeilen der einzelnen Blätter ändern.
Gibt es einen Trick, wie ich mir diesen Aufwand sparen kann? Am liebsten wäre es mir, wenn ich das Datum nur an einer Stelle eintragen würde und die Fußzeilen anschließend automatisch diesen Wert übernehmen würden.
Danke und Gruß
Stefan
PS: Mit den Standardwerten (z.B. "Erstellt am ...") kann ich leider nicht anfangen.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: benutzerdefinierte Fußzeile pflegen
19.06.2006 09:39:31
Jan
Du erstellst einfach ein Makro für eine Fußzeile mit Datumsvariable:

Sub Footer()
With ActiveSheet.Pagesetup
.LeftFooter = "19.06.2006"
.CenterFooter = ""
.RightFooter = ""
End With
End Sub

Danke und Nachfrage
19.06.2006 09:59:03
Stefan
Hallo Jan,
vielen Dank für deine Hilfe. Ich würde mich noch über zwei Erweiterungen freuen:
1. Statt ein Datum im Makro einzufügen würde ich lieber einen Zellwert auslesen.
2. Statt des aktuellen Blattes würde ich gerne alle Blätter der Mappe ändern.
Lässt sich das machen?
Danke und Gruß Stefan
AW: Danke und Nachfrage
19.06.2006 10:16:03
fcs
Hallo Stefan,
dieses Makro im VBA-Editor unter der Tabelle einfügen in der das Berichtsdatum eingetragen werden soll. Zelle im Makro anpassen.
Bei Eintrag/Änderung des Datums wird das Makro automatisch ausgeführt.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Datum aus Tabelle Zelle "G1" in Fußzeile aller Blätter übertragen
Dim wks As Worksheet, wb As Workbook
Set wb = ThisWorkbook
If Target.Address = "$G$1" Then
For Each wks In wb.Worksheets
With wks.PageSetup
'.LeftHeader = "xxx"
'.CenterHeader = "xxx"
'.RightHeader = "xxx"
'.LeftFooter = "xxx"
.CenterFooter = "Bericht vom: " & Format(Target.Value, "DD.MM.YYYY")
'.RightFooter = "xxx"
End With
Next wks
End If
End Sub

mfg
Franz
Anzeige
Fehlermeldung
19.06.2006 10:58:26
Stefan
Hallo Franz,
vielen Dank für deine Hilfe. Leider bekomme ich die Fehlermeldung "Argument ist nicht optional", obwohl in G1 ein Datum steht.
Hast du eine Idee?
Danke und Gruß Stefan
AW: Fehlermeldung
19.06.2006 11:34:46
fcs
Stefan,
die Fehlermeldung kann ich leider nicht nachvollziehen. Bei mir unter Excel97/Win98 funktionierts reibungslos.
Falls in G1 kein Datum steht, dann kommt eigentlich die Meldung "Laufzeitfehler 13 - Typen unverträglich"
Den Eingabefehler beim Datum kann man durch folgende Anpassung abfangen:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Datum aus Tabelle Zelle "G1" in Fußzeile aller Blätter übertragen
Dim wks As Worksheet, wb As Workbook
Set wb = ThisWorkbook
If Target.Address = "$G$1" Then
If IsDate(Target) Then
For Each wks In wb.Worksheets
With wks.PageSetup
'.LeftHeader = "xxx"
'.CenterHeader = "xxx"
'.RightHeader = "xxx"
'.LeftFooter = "xxx"
.CenterFooter = "Bericht vom: " & Format(Target.Value, "DD.MM.YYYY")
'.RightFooter = "xxx"
End With
Next wks
Else
MsgBox "In Zelle G1 muss ein Datum eingegeben werden!"
End If
End If
End Sub

Kannst du mal die Datei ohne vertrauliche Daten hier hochladen?
Gruß
Franz
Anzeige
AW: Fehlermeldung
19.06.2006 13:15:40
Stefan
Hallo Franz,
vielen Dank für deine Geduld. Da ich bisher keine Erfahrungen mit VBA-Skripten habe, will ich sicherheitshalber meinen Weg zur angehängten Datei (https://www.herber.de/bbs/user/34461.xls) beschrieben:
1. Neue Excel-Datei angelegt
2. "1.1.2006" in Zelle G1 eingetragen
3. Datei gespeichert
4. ALT-F11 gedrückt
5. Einfügen - Modul
6. Quelltext in Modul eingefügt
7. Modul gespeichert (STRG-S)
8. VB-Editor geschlossen
9. ALT-F8 gedrückt
10. "Worksheet_Change" bei Makroname eingegeben
11. "Ausführen" gedrückt
Anschließend erhalte ich die Fehlermeldung.
Hast du eine Idee?
Danke und Gruß Stefan
Anzeige
AW: Fehlermeldung
19.06.2006 15:48:09
fcs
Hallo Jan,
ich hatte ja geschrieben, dass das Makro im VBA-Editor unter Tabelle1 eingefügt werden muß. Also nicht in ein Modul.
Das Makro hat diesen speziellen Namen und wird automatisch ausgeführt, wenn in der Tabelle Einträge geändert werden. Dies ist die komfortabelste Lösung. Dazu deine Schrittfolge ab Schritt 5 ändern:
1. Neue Excel-Datei angelegt
2. "1.1.2006" in Zelle G1 eingetragen
3. Datei gespeichert
4. ALT-F11 gedrückt
5. Doppel-Klick auf Tabelle1 (die Tabelle in der das Datumsfeld steht)
6. Quelltext im rechten Fenster eingefügt
7. Modul gespeichert (STRG-S)
8. VB-Editor geschlossen
9. Datum in Zelle G1 eingeben/ändern
Falls du den Automatismus nicht möchtest, dann muß das Makro etwas anders aus sehen und in ein Modul eingefügt werden:

Sub Fusszeile()
'Datum aus Tabelle1 Zelle "G1" in Fußzeile aller Blätter übertragen
Dim wks As Worksheet, wb As Workbook, rngZelle As Range
Set wb = ThisWorkbook
Set rngZelle = wb.Sheets("Tabelle1").Range("G1") ' Zelle mit Datum
If IsDate(rngZelle.Value) Then
For Each wks In wb.Worksheets
With wks.PageSetup
'.LeftHeader = "xxx"
'.CenterHeader = "xxx"
'.RightHeader = "xxx"
'.LeftFooter = "xxx"
.CenterFooter = "Bericht vom: " & Format(rngZelle.Value, "DD.MM.YYYY")
'.RightFooter = "xxx"
End With
Next wks
Else
MsgBox "In Zelle G1 muss ein Datum eingegeben werden!"
End If
End Sub

Hoffe du kommst jetzt zurecht.
mfg
Franz
Anzeige
Vielen Dank
19.06.2006 16:34:57
Stefan
Hallo Franz,
vielen herzlichen Dank - es funktioniert und wird mir in den nächsten Wochen viel Arbeit sparen.
Gruß Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige