Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Drucken wenn Bedingungen erfüllt

Drucken wenn Bedingungen erfüllt
07.03.2016 13:20:05
Thomas
Hallo zusammen,
meine VBA-Kenntnisse stoßen mal wieder an meine Grenzen.
Ich habe eine Tabelle erstellt in der einige Daten eingegeben werden. Tabellenblattname "U 1000"
Ob die Daten korrekt eingegeben sind, wird in Spalte "CG" ausgewertet. (Auswertung WAHR, FALSCH)
Geprüft werden die Zeilen: 7-11, 14-26, 28, 31, 35, 38, 39, 41-44, 46-50, 52
Wenn ich die Tabelle drucke, soll bei fehlerhafter Dateneingabe eine Message Box aufgehen.
Fehlerhafte Dateneingabe in Zeile XX. Trotzdem drucken? Ja / Nein
Wäre super, wenn mir jemand hierbei helfen kann.
Viele Grüße,
Thomas

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Drucken wenn Bedingungen erfüllt
07.03.2016 15:47:18
Michael
Hallo Thomas!
zB so (Makro muss in das Klassenmodul der Arbeitsmappe, also im VBE DoKlick auf "DieseArbeitsmappe"):
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Const ChkBlatt As String = "U 1000" 'Tabellenblatt und...
Const ChkBereich As String = "CG7:CG52" '...Zellbereich mit WAHR/FALSCH-Prüfung
Dim chk As Boolean
Dim PruefZelle As Range
Dim FehlerZeilen As String
Dim Warnung
With ThisWorkbook.Worksheets(ChkBlatt)
chk = WorksheetFunction.And(.Range(ChkBereich))
If chk = False Then
For Each PruefZelle In .Range(ChkBereich)
If PruefZelle.Value = "Falsch" Then
FehlerZeilen = FehlerZeilen & PruefZelle.Row & vbLf
End If
Next
Warnung = MsgBox("Eingabefehler in Blatt [" & ChkBlatt & "] in Zeile(n):" & _
vbLf & vbLf & FehlerZeilen & vbLf & vbLf & "Trotzdem drucken?", _
vbOKCancel, "Fehler - Drucken?")
If Warnung = vbCancel Then Cancel = True
End If
End With
End Sub
Das Tabellenblatt und den entsprechenden Zellbereich, in dem die WAHR/FALSCH-Prüfungen zu finden sind, kannst Du einfach im Makro anpassen.
LG
Michael

Anzeige
AW: Drucken wenn Bedingungen erfüllt
07.03.2016 17:12:05
Thomas
Hallo Michael,
vielen Dank für den Code. Zum Ausprobieren komme ich heute nicht mehr.
Anpassen sollte kein Problem sein.
Melde mich aber wenn ich ihn eingebaut habe.
Gruß,
Thomas

Gerne, gib Bescheid ob's passt! LG und owT
07.03.2016 17:54:55
Michael

AW: Gerne, gib Bescheid ob's passt! LG und owT
08.03.2016 19:19:13
Thomas
Hallo Michael,
wenn alle Werte in Spalte CG auf WAHR stehen passt es. Wenn eine oder mehrere Zellen auf FALSCH stehen, werden die Leerzellen auch als Fehler ausgegeben. Ich habe aber die leeren Zellen mit WAHR ausgefüllt, da es sich eh nur um eine Hilfsspalte handelt.
So passt es dann.
Besten Dank noch mal.
Viele Grüße,
Thomas

Anzeige
Okay, dann...
08.03.2016 22:48:04
Michael
Hallo Thomas,
tausche die Zeile
If PruefZelle.Value = "Falsch" Then
mit
If Not IsEmpty(PruefZelle) And PruefZelle.Value = "Falsch" Then
dann sollte es auch mit den leeren Zellen klappen, ohne mit WAHR aufzufüllen.
Passt's?
LG
Michael
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Drucken bei Bedingungen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel beim Drucken eine Überprüfung auf fehlerhafte Eingaben durchzuführen, kannst Du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung:

  1. Öffne Deine Excel-Datei und drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
  2. Klicke im Projekt-Explorer auf "DieseArbeitsmappe".
  3. Füge den folgenden Code in das Codefenster ein:

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
       Const ChkBlatt As String = "U 1000" ' Tabellenblattname anpassen
       Const ChkBereich As String = "CG7:CG52" ' Zellbereich für WAHR/FALSCH-Prüfung
       Dim chk As Boolean
       Dim PruefZelle As Range
       Dim FehlerZeilen As String
       Dim Warnung
    
       With ThisWorkbook.Worksheets(ChkBlatt)
           chk = WorksheetFunction.And(.Range(ChkBereich))
           If chk = False Then
               For Each PruefZelle In .Range(ChkBereich)
                   If Not IsEmpty(PruefZelle) And PruefZelle.Value = "Falsch" Then
                       FehlerZeilen = FehlerZeilen & PruefZelle.Row & vbLf
                   End If
               Next
               Warnung = MsgBox("Eingabefehler in Blatt [" & ChkBlatt & "] in Zeile(n):" & _
                                vbLf & vbLf & FehlerZeilen & vbLf & vbLf & "Trotzdem drucken?", _
                                vbOKCancel, "Fehler - Drucken?")
               If Warnung = vbCancel Then Cancel = True
           End If
       End With
    End Sub
  4. Passe den Tabellenblattnamen und den Zellbereich im Code an Deine Bedürfnisse an.
  5. Schließe den VBA-Editor und teste die Druckfunktion in Excel.

Häufige Fehler und Lösungen

  • Fehlerhafte Zeilen werden nicht angezeigt: Stelle sicher, dass der Zellbereich korrekt definiert ist und die Zellen tatsächlich „Falsch“ enthalten.
  • Makro funktioniert nicht: Überprüfe, ob die Makros in Deinen Excel-Einstellungen aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die entsprechenden Optionen.
  • Message Box erscheint nicht: Stelle sicher, dass das Makro im richtigen Modul gespeichert ist (in "DieseArbeitsmappe").

Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch folgende Methoden in Betracht ziehen:

  • Bedingte Formatierung: Markiere fehlerhafte Daten durch bedingte Formatierung. Diese Methode ist jedoch nicht so automatisiert wie ein VBA-Skript.
  • Datenüberprüfung: Verwende die Datenüberprüfungsfunktion, um sicherzustellen, dass nur gültige Daten eingegeben werden, bevor Du druckst.

Praktische Beispiele

Hier ist ein Beispiel, wie Du das Makro anpassen kannst, wenn Du zusätzliche Bedingungen prüfen möchtest:

If PruefZelle.Value = "Falsch" Or PruefZelle.Value = "" Then

Dieses Beispiel zeigt, wie Du nicht nur auf "Falsch", sondern auch auf leere Zellen prüfen kannst.


Tipps für Profis

  • Fehlerprotokollierung: Du kannst das Makro erweitern, um die Fehler in einer separaten Tabelle zu protokollieren, was die Nachverfolgung der Eingabefehler erleichtert.
  • Benutzerdefinierte Fehlermeldungen: Personalisiere die Messages Box, um spezifische Hinweise zu geben, welche Eingaben erforderlich sind.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, wenn ich mehr Zeilen überprüfen möchte?
Erweitere einfach den Zellbereich in der Const ChkBereich Zeile, um die zusätzlichen Zeilen einzuschließen.

2. Funktioniert das Makro auch in Excel Online?
Leider wird VBA in Excel Online nicht unterstützt. Du musst die Desktop-Version verwenden.

3. Kann ich das Makro für andere Tabellenblätter verwenden?
Ja, passe einfach den Namen des Tabellenblatts und den Zellbereich im Code an.

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