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

Pflichtfelder

Pflichtfelder
01.10.2007 17:09:00
Paul
Hallo Leute
bin etwas in Eile daher noch mal kurz mein Hilferuf:
Ich möchte verhindern , das ein einzelnes Blatt aus einer Datei gedruckt wird, wenn nicht alle Pflichtfelder ausgefüllt sind, die Lösung für Pflichtfelder in der gesamten Datei habe ich bereits, aber wenn ich jetzt ein anderes Blatt drucken will kommen die gleichen MsgBoxen, auch wenn dieses jetzt zu druckende Blatt nichts mit den Pflichtfeldern zu tun hat.
So sieht der Code in "DieseArbeitsmappe" zur Zeit aus nur sollten die Prüfung nur erfolgen wenn das Sheet "AbRe" gedruckt werden soll:
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If IsEmpty(Range("ReDat")) Then
Cancel = True
MsgBox "Bitte Rechnungsdatum angeben!"
Exit Sub
End If
If IsEmpty(Range("ReNr")) Then
Cancel = True
MsgBox "Bitte Rechnungsnummer angeben!"
Exit Sub
End If
If IsEmpty(Range("ReSum")) Then
Cancel = True
MsgBox "Bitte die Rechnungssumme angeben!"
Exit Sub
End If
End Sub


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichtfelder
01.10.2007 17:46:23
fcs
Hallo paul,
wenn immer nur ein Tabellenblatt (das aktive Blatt) gedruckt wird, dann kannst du mit einer Select Case Anweisung die Prüfungen steuern. Die Blattnamen in den Case-Zeilen entsprechend anpassen!
Falls Blätter auch gruppiert gedruckt werden, dann muss man die Prüfungen etwas aufwendiger programmieren.
Gruß
Franz

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Blattname1"
If IsEmpty(Range("ReDat")) Then
Cancel = True
MsgBox "Bitte Rechnungsdatum angeben!"
Exit Sub
End If
Case "Blattname2"
If IsEmpty(Range("ReNr")) Then
Cancel = True
MsgBox "Bitte Rechnungsnummer angeben!"
Exit Sub
End If
Case "Blattname3"
If IsEmpty(Range("ReSum")) Then
Cancel = True
MsgBox "Bitte die Rechnungssumme angeben!"
Exit Sub
End If
Case Else
'do nothing
End Select
End Sub


Anzeige
AW: Pflichtfelder
01.10.2007 18:10:00
Paul
Hallo Franz,
danke für die schnelle Antwort, der Druck des Pflichtfeld-losen Blattes funktioniert jetzt, nur prüft der Code beim druckem von "AbRe" jetzt nur das Feld "ReDat", die beiden anderen Felder werden ignoriert!

AW: Pflichtfelder
01.10.2007 18:26:00
Paul
Sorry hab den noch offen Haken vergessen

AW: Pflichtfelder
01.10.2007 19:24:25
Erich
Hallo Paul,
versuchs mal mit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name  "AbRe" Then Exit Sub
If IsEmpty(Range("ReDat")) Then
Cancel = True
MsgBox "Bitte Rechnungsdatum angeben!"
Exit Sub
End If
If IsEmpty(Range("ReNr")) Then
Cancel = True
MsgBox "Bitte Rechnungsnummer angeben!"
Exit Sub
End If
If IsEmpty(Range("ReSum")) Then
Cancel = True
MsgBox "Bitte die Rechnungssumme angeben!"
Exit Sub
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Pflichtfelder Version 2
01.10.2007 19:29:00
Erich
Hallo Paul,
wenn gleich beim ersten Mal alle leeren Pflichtfelder angemeckert werden sollen,
also nicht erst beim nächsten Druckversuch, gehts kürzer:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name  "AbRe" Then Exit Sub
If IsEmpty(Range("ReDat")) Then
Cancel = True
MsgBox "Bitte Rechnungsdatum angeben!"
End If
If IsEmpty(Range("ReNr")) Then
Cancel = True
MsgBox "Bitte Rechnungsnummer angeben!"
End If
If IsEmpty(Range("ReSum")) Then
Cancel = True
MsgBox "Bitte die Rechnungssumme angeben!"
End If
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Pflichtfelder Version 2
02.10.2007 11:16:00
Paul
Hallo Erich,
danke die Version mit de ndrei MsgBoxen hintereinander funktioniert gut!

AW: Pflichtfelder
02.10.2007 09:19:00
fcs
Hallo Paul,
dann etwa so aufbauen:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Select Case ActiveSheet.Name
Case "Abre", "Blattname2", "Blattname3"
'Alle Blätter nur mit ausgefüllten Pflichtfeldern gedruckt werden dürfen
If IsEmpty(Range("ReDat")) Then
Cancel = True
MsgBox "Bitte Rechnungsdatum angeben!"
Exit Sub
End If
If IsEmpty(Range("ReNr")) Then
Cancel = True
MsgBox "Bitte Rechnungsnummer angeben!"
Exit Sub
End If
If IsEmpty(Range("ReSum")) Then
Cancel = True
MsgBox "Bitte die Rechnungssumme angeben!"
Exit Sub
End If
Case Else
'do nothing
End Select
End Sub


Du kannst es auch umkehren, wenn die Zahl der Blätter mit Pflichtfeldern sehr groß ist, dann die Ausnahmen hinter Case listen und die Bedingungen unter Case Else einfügen.
Gruß
Franz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige