ich möchte gern über das Before Print Ereignis eine InputBox öffnen
in die derjenige der Druckt seinen Namen eingiebt und dieser Name sollte dann in der Kopfzeile rechts erscheinen.
Danke Andre´
ich möchte gern über das Before Print Ereignis eine InputBox öffnen
in die derjenige der Druckt seinen Namen eingiebt und dieser Name sollte dann in der Kopfzeile rechts erscheinen.
Danke Andre´
Gruß Hajo
Danke Andre´
ich galube jetzt müßten alle Fäle abgesichert sein. Nur wenn ein Name eingegeben wird, wird auch gedruckt
Gruß Hajo
irgendwie hats nicht Funktioniert aber vielleicht hab ich´s ja nur schlecht beschrieben. Ich habe deinen Code etwas "Modifiziert" (kl. Scherz) und so Funktionierts jetzt:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Wert As String
Wert = Application.InputBox("Bitte Kürzel eingeben um den Druck freizugeben.", "Druckfreigabe", Type:=2)
If Wert = "Falsch" Then Cancel = True
If Wert = "" Then Cancel = True
Exit Sub
' Kopfzeile Rechts
ActiveSheet.PageSetup.RightHeader = Wert
' Left=Links; Center=Mitte; Right=Rechts
' Header=Kopfzeile; Footer=Fußzeile
End Sub
Danke für deine Hilfe, Tschüß Andre´
ich will ja nicht an Deinen Programmierkenntnissen zweifeln aber nach dem ersten blick kommt das Makro nicht zu
ActiveSheet.PageSetup.RightHeader = Wert
da davor ein Exit Sub steht
es mußte schon
If Wert = "Falsch" Then Cancel = True:Exit Sub
If Wert = "" Then Cancel = True:Exit Sub
ActiveSheet.PageSetup.RightHeader = Wert
lauten
Gruß Hajo
Um eine InputBox vor dem Drucken in Excel anzuzeigen, kannst du das Workbook_BeforePrint
Ereignis verwenden. Hier ist eine einfache Anleitung, um dies mithilfe von VBA (Visual Basic for Applications) umzusetzen:
Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Suche im Projekt-Explorer nach "DieseArbeitsmappe" unter deinem aktuellen Arbeitsbuch.
Doppelklicke auf "DieseArbeitsmappe", um das Codefenster zu öffnen.
Füge den folgenden Code ein:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Wert As String
Wert = Application.InputBox("Bitte Kürzel eingeben um den Druck freizugeben.", "Druckfreigabe", Type:=2)
If Wert = "Falsch" Or Wert = "" Then
Cancel = True
Exit Sub
End If
' Kopfzeile Rechts setzen
ActiveSheet.PageSetup.RightHeader = Wert
End Sub
Schließe den VBA-Editor und gehe zurück zu Excel.
Teste den Druckvorgang. Du solltest jetzt eine Eingabeaufforderung sehen, bevor der Druck ausgeführt wird.
Problem: Der Druck wird auch nach dem Drücken von "Abbrechen" oder Eingeben eines leeren Wertes gestartet.
Cancel
-Variable auf True
gesetzt wird, wie im obigen Code gezeigt.Problem: Der Code erreicht die Zeile zur Setzung der Kopfzeile nicht.
Exit Sub
vor der Zeile zur Setzung der Kopfzeile steht. Es sollte nur ausgeführt werden, wenn ein ungültiger Wert eingegeben wird.Falls du die Eingabeaufforderung für den Druck auf andere Weise umsetzen möchtest, könntest du auch eine UserForm erstellen, die mehr Anpassungen erlaubt. Dies erfordert jedoch zusätzliche Schritte zur Gestaltung der Form und zur Anpassung des Codes.
Hier ist ein einfaches Beispiel, um zu verdeutlichen, wie du die Eingabe in der Kopfzeile anpassen kannst:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Wert As String
Wert = Application.InputBox("Bitte Namen eingeben:", "Druckfreigabe", Type:=2)
If Wert = "" Then
MsgBox "Druck abgebrochen. Bitte einen Namen eingeben."
Cancel = True
Exit Sub
End If
ActiveSheet.PageSetup.RightHeader = "Druck von: " & Wert
End Sub
In diesem Beispiel wird der eingegebene Name als Teil der Kopfzeile angezeigt.
On Error GoTo Fehlerbehandlung
' Dein Code hier
Exit Sub
Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description
1. Wie kann ich die Kopfzeile in anderen Bereichen anpassen?
Du kannst die ActiveSheet.PageSetup.LeftHeader
oder ActiveSheet.PageSetup.CenterHeader
verwenden, um die Kopfzeile links oder in der Mitte anzupassen.
2. Funktioniert dieser Code in allen Excel-Versionen?
Der gezeigte Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und später) funktionieren, die VBA unterstützen.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen