Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Before Print

Forumthread: Before Print

Before Print
08.08.2002 04:52:05
Andre´
Hallo,

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´

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Before Print
08.08.2002 06:09:04
Hajo_Zi
Hallo Andre´

Gruß Hajo

Re: Before Print
08.08.2002 22:38:38
Andre´
Danke Hajo für den Code, nur eine kleinigkeit noch: Wenn Abbrechen gedrückt wird beginnt der Ausdruck trotzdem, schön wäre es wenn dann der gesamte Ausdruck abgebrochen wird.

Danke Andre´

Re: Before Print
09.08.2002 07:40:20
Hajo_Zi
Hallo Andre´

ich galube jetzt müßten alle Fäle abgesichert sein. Nur wenn ein Name eingegeben wird, wird auch gedruckt

Gruß Hajo

Anzeige
Re: Before Print
09.08.2002 21:50:37
Andre´
Hallo 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´


Anzeige
Re: Before Print
09.08.2002 21:56:13
Hajo_Zi
Hallo 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

Anzeige
Anzeige

Infobox / Tutorial

InputBox zur Namenseingabe vor dem Drucken in Excel


Schritt-für-Schritt-Anleitung

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:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Suche im Projekt-Explorer nach "DieseArbeitsmappe" unter deinem aktuellen Arbeitsbuch.

  3. Doppelklicke auf "DieseArbeitsmappe", um das Codefenster zu öffnen.

  4. 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
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Teste den Druckvorgang. Du solltest jetzt eine Eingabeaufforderung sehen, bevor der Druck ausgeführt wird.


Häufige Fehler und Lösungen

  • Problem: Der Druck wird auch nach dem Drücken von "Abbrechen" oder Eingeben eines leeren Wertes gestartet.

    • Lösung: Stelle sicher, dass die Cancel-Variable auf True gesetzt wird, wie im obigen Code gezeigt.
  • Problem: Der Code erreicht die Zeile zur Setzung der Kopfzeile nicht.

    • Lösung: Überprüfe, ob das Exit Sub vor der Zeile zur Setzung der Kopfzeile steht. Es sollte nur ausgeführt werden, wenn ein ungültiger Wert eingegeben wird.

Alternative Methoden

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.


Praktische Beispiele

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.


Tipps für Profis

  • Eingabevalidierung: Du kannst die Eingabe weiter validieren, indem du bestimmte Bedingungen hinzufügst, wie z.B. die Überprüfung auf unerlaubte Zeichen.
  • VBA Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während der Ausführung zu erfassen.
On Error GoTo Fehlerbehandlung
' Dein Code hier
Exit Sub

Fehlerbehandlung:
MsgBox "Ein Fehler ist aufgetreten: " & Err.Description

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige