Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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
Kopfzeile in Abhängigkeit vom Zellinhalt
14.03.2018 13:43:52
Ralf
Hallo Forum,
ich erstelle mit folgendem Code einen Eintrag in der Kopfzeile:
Private Sub Workbook_Open()
Dim objWS As Worksheet
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "Druck: " & _
Format(Date, "dd. MMMM yyyy") & " / " & _
Format(Time, "hh:mm:ss") & " Uhr von " & Environ("UserName")
Next objWS
End Sub
Jetzt soll aber der Kopfzeileneintrag in Abhängigkeit von einer Zelle stehen.
Der nachfolgende Code funktioniert nicht (ich kann kein VBA), soll aber die funktionsweise erklären.
Private Sub Workbook_Open()
Dim objWS As Worksheet
If Sheets("Sprachauswahl").Range("F2") = 1 Then
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "Druck: " & _
Format(Date, "dd. MMMM yyyy") & " / " & _
Format(Time, "hh:mm:ss") & " Uhr von " & Environ("UserName")
Next objWS
If Sheets("Sprachauswahl").Range("F2") = 2 Then
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "Print: " & _
Format(Date, "MMMM, dd yyyy") & " / " & _
Format(Time, "hh:mm:ss") & " clock by " & Environ("UserName")
Next objWS
If Sheets("Sprachauswahl").Range("F2") = 3 Then
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "压力: " & _
Format(Date, "yyyy m dd") & " / " & _
Format(Time, "hh:mm:ss") & " 从中 " & Environ("UserName")
Next objWS
End Sub
Eine weitere Frage wäre den Befehl Format(Date, ....) als Druckdatum auszugeben. Geht das?
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopfzeile in Abhängigkeit vom Zellinhalt
14.03.2018 15:15:55
Werner
Hallo Ralf,
so:
Dim objWS As Worksheet
Select Case Sheets("Sprachauswahl").Range("F2").Value
Case 1
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "Druck: " & _
Format(Date, "dd. MMMM yyyy") & " / " & _
Format(Time, "hh:mm:ss") & " Uhr von " & Environ("UserName")
Next objWS
Case 2
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "Print: " & _
Format(Date, "MMMM, dd yyyy") & " / " & _
Format(Time, "hh:mm:ss") & " clock by " & Environ("UserName")
Next objWS
Case 3
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = "?: " & _
Format(Date, "yyyy m dd") & " / " & _
Format(Time, "hh:mm:ss") & " ? " & Environ("UserName")
Next objWS
Case Else
End Select
Gruß Werner
Anzeige
AW: Kopfzeile in Abhängigkeit vom Zellinhalt
14.03.2018 15:26:22
Ralf
Hallo Werner,
Hallo Hanshüsli,
beide Lösungen funktionieren wunderbar.
Einziges Manko: Ich muss nach Änderung der Zelle F2 z. B. von 1 auf 2 die Mappe speichern, schließen und wieder neu öffnen, damit das gewünschte Ergebnis erscheint.
Geht das auch Online, ohne speichern, schließen und wieder öffnen?
Viele Grüße
Ralf
AW: Kopfzeile in Abhängigkeit vom Zellinhalt
14.03.2018 15:46:25
EtoPHG
Hallo Ralf,
Dann teilen wir das auf:
Code in DieseArbeitsmappe:
Private Sub Workbook_Open()
Sprachauswahl
End Sub

Code in ein Modul:
Sub Sprachauswahl()
Dim objWS As Worksheet
Dim Prefix As String
Dim FormattedDate As String
Dim FormattedTime As String
Dim PostFix As String
FormattedTime = Format(Time, "hh:mm:ss")
Select Case Worksheets("Sprachauswahl").Cells(2, 6)
Case 1
Prefix = "Druck:"
FormattedDate = Format(Date, "dd. MMMM yyyy")
PostFix = " Uhr von "
Case 2
Prefix = "Print:"
FormattedDate = Format(Date, "MMMM, dd yyyy")
PostFix = " clock by "
Case 3
Prefix = "压力"
FormattedDate = Format(Date, "yyyy m dd")
PostFix = " 从中 "
End Select
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = Prefix & _
FormattedDate & " / " & _
FormattedTime & PostFix & Environ("UserName")
Next objWS
End Sub

Code in das Tabelleblatt "Sprachauswahl":
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$2" Then Sprachauswahl
End Sub
Gruess Hansueli
Anzeige
AW: Kopfzeile in Abhängigkeit vom Zellinhalt
15.03.2018 06:57:20
Ralf
Hallo Hansueli,
vielen Dank für Deine Unterstützung.
Bei Änderung der Zelle F2 im Blatt "Sprachauswahl" ändert sich momentan die Kopfzeile nicht.
Kann das an der Art und Weise liegen wie die Sprachauswahl gemacht wird? Ich benutze 3 Optionsfelder die einen Wert in die Zelle F2 schreiben.
Viele Grüße
Ralf
Zeig den Code für die Optionsfelder ! (owT)
15.03.2018 08:18:52
EtoPHG

AW: Zeig den Code für die Optionsfelder ! (owT)
15.03.2018 08:26:33
Ralf
Hallo Hansueli,
welchen Code meinst Du?
Im Tabellenblatt "Sprachauswahl" sieht es so aus:
Userbild
Ich weiß momentan nicht, welche Information ich Dir liefern soll.
Viele Grüße
Ralf
Anzeige
AW: Zeig den Code für die Optionsfelder ! (owT)
15.03.2018 09:16:49
Daniel
Hi
basierend auf dem Vorschlag von HansUeli
1. lösche das Worksheet_Change-Makro im Modul des Tabellenblatts "Sprachauswahl"
2. weise den Optionbuttons das Makro "Sprachauswahl" zu.
hierzu klickst du sie mit der rechten Maustaste an, gehst im Kontextmenü auf "Makro zuweisen" und wählst das Makro aus.
Dieses Makro wird dann ausgeführt, wenn du die Checkbox anklickst.
Gruß Daniel
AW: Zeig den Code für die Optionsfelder ! (owT)
15.03.2018 11:25:57
Ralf
Hallo Daniel,
super, jetzt funktioniert es.
Nur dauert die Sprachumstellung jetzt ein paar Sekunden. Kann man das noch optimieren?
Vielen Dank für die schnelle Hilfe.
Viele Grüße
Ralf
Anzeige
AW: Zeig den Code für die Optionsfelder ! (owT)
16.03.2018 10:51:11
Daniel
Hi
ja, der Zugriff auf die Printeinstellungen dauert, warum auch immer.
Anscheinend halten Computer und Drucker dann ein Kaffekränzchen.
Versuch mal obs schneller geht, wenn du dem ganzen ein:
Application.PrintCommunication = False

voranstellst.
Hinterher wieder einschalten.
Gruß Daniel
AW: Zeig den Code für die Optionsfelder ! (owT)
20.03.2018 10:51:20
Ralf
Hallo Daniel,
ich habe es bislang versäumt, Dir eine Rückmeldung zu geben.
Ich habe Deinen Vorschlag eingearbeitet. Ja, es ist ein wenig schneller geworden. Dann ist es eben so, das man eine Gedenkminute einlegen muss.
Vielen Dank für Deinen Tipp.
Viele Grüße
Ralf
Anzeige
AW: Kopfzeile in Abhängigkeit vom Zellinhalt
14.03.2018 15:17:20
EtoPHG
Hallo Ralf,
z.B. so: ?
Private Sub Workbook_Open()
Dim objWS As Worksheet
Dim Prefix As String
Dim FormattedDate As String
Dim FormattedTime As String
Dim PostFix As String
FormattedTime = Format(Time, "hh:mm:ss")
Select Case Worksheets("Sprachauswahl").Cells(2, 6)
Case 1
Prefix = "Druck:"
FormattedDate = Format(Date, "dd. MMMM yyyy")
PostFix = " Uhr von "
Case 2
Prefix = "Print:"
FormattedDate = Format(Date, "MMMM, dd yyyy")
PostFix = " clock by "
Case 3
Prefix = "压力"
FormattedDate = Format(Date, "yyyy m dd")
PostFix = " 从中 "
End Select
For Each objWS In ThisWorkbook.Worksheets
objWS.PageSetup.RightHeader = Prefix & _
FormattedDate & " / " & _
FormattedTime & PostFix & Environ("UserName")
Next objWS
End Sub
Gruess Hansueli
Anzeige

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige