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

Tabellenblätter nach ausgewählter CheckBox drucken

Forumthread: Tabellenblätter nach ausgewählter CheckBox drucken

Tabellenblätter nach ausgewählter CheckBox drucken
01.04.2014 12:12:41
Wolfgang
Hallo miteinander,
ich komme mit der UF und den CheckBoxen nicht zurecht.
In einer Userform sind 7 CheckBoxen und wenn ich nun egal wieviele ich anklicke und dann auf den Button "Drucken" aus der UF klicke, dann werden mir immer 7 Seiten ausgedruckt!
Wie kann man das steuern, dass nur das Tabellenblatt ausgedruckt wird, das auch über die CheckBox ausgewählt wird?
hier mal der Code:
Private Sub CommandButton2_Click()
If CheckBox1 = True Then Sheets("Tabelle1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox2 = True Then Sheets("Tabelle2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox3 = True Then Sheets("Tabelle3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox4 = True Then Sheets("Tabelle4").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox5 = True Then Sheets("Tabelle5").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox6 = True Then Sheets("Tabelle6").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox7 = True Then Sheets("Tabelle").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Unload Me
Sheets("Tabelle1").Activate
End Sub
Hoffe auf Hilfe
es grüßt
Wolfgang aus Franken

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblätter nach ausgewählter CheckBox drucken
01.04.2014 12:42:31
fcs
Hallo Wolfgang,
du musst das Drucken der einzelnen Blätter mit in jedem If-Fall einschliessen.
Bei dir stehen die Druckanweisungen zwischen den einzelnen If-Anweisung. So werden einzelne Blätter ggf. immer mehrfach gedruckt.
Gruß
Franz
'so
Private Sub CommandButton2_Click()
If CheckBox1 = True Then
Sheets("Tabelle1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox2 = True Then
Sheets("Tabelle2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox3 = True Then
Sheets("Tabelle3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox4 = True Then
Sheets("Tabelle4").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox5 = True Then
Sheets("Tabelle5").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox6 = True Then
Sheets("Tabelle6").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
If CheckBox7 = True Then
Sheets("Tabelle7").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
Unload Me
Sheets("Tabelle1").Activate
End Sub
'oder so
Private Sub CommandButton2_Click()
If CheckBox1 = True Then Sheets("Tabelle1").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox2 = True Then Sheets("Tabelle2").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox3 = True Then Sheets("Tabelle3").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox4 = True Then Sheets("Tabelle4").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox5 = True Then Sheets("Tabelle5").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox6 = True Then Sheets("Tabelle6").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
If CheckBox7 = True Then Sheets("Tabelle7").PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Unload Me
Sheets("Tabelle1").Activate
End Sub

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter nach ausgewählter CheckBox drucken


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass nur die Tabellenblätter ausgedruckt werden, die über die CheckBoxen ausgewählt wurden, kannst Du den folgenden Code verwenden. Dieser Code überprüft jede CheckBox und druckt nur die entsprechenden Tabellenblätter:

Private Sub CommandButton2_Click()
    If CheckBox1 = True Then
        Sheets("Tabelle1").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox2 = True Then
        Sheets("Tabelle2").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox3 = True Then
        Sheets("Tabelle3").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox4 = True Then
        Sheets("Tabelle4").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox5 = True Then
        Sheets("Tabelle5").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox6 = True Then
        Sheets("Tabelle6").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    If CheckBox7 = True Then
        Sheets("Tabelle7").PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    End If
    Unload Me
    Sheets("Tabelle1").Activate
End Sub

Mit diesem Code wird sichergestellt, dass die Druckanweisung für jedes Tabellenblatt direkt innerhalb der jeweiligen If-Anweisung erfolgt.


Häufige Fehler und Lösungen

Ein häufiger Fehler ist, dass die Druckanweisungen außerhalb der If-Bedingungen platziert werden. Dies führt dazu, dass ungewollt alle Tabellenblätter gedruckt werden. Achte darauf, dass jede Druckanweisung innerhalb der entsprechenden If-Bedingung steht.

Wenn Du die Meldung erhältst, dass keine Daten zum Drucken vorhanden sind, stelle sicher, dass die CheckBoxen tatsächlich die richtigen Werte zurückgeben.


Alternative Methoden

Eine alternative Methode ist die Verwendung von Arrays, um die ausgewählten Blätter zu sammeln und dann in einem Rutsch zu drucken:

Private Sub CommandButton2_Click()
    Dim sheetsToPrint As Collection
    Set sheetsToPrint = New Collection

    If CheckBox1 = True Then sheetsToPrint.Add "Tabelle1"
    If CheckBox2 = True Then sheetsToPrint.Add "Tabelle2"
    If CheckBox3 = True Then sheetsToPrint.Add "Tabelle3"
    If CheckBox4 = True Then sheetsToPrint.Add "Tabelle4"
    If CheckBox5 = True Then sheetsToPrint.Add "Tabelle5"
    If CheckBox6 = True Then sheetsToPrint.Add "Tabelle6"
    If CheckBox7 = True Then sheetsToPrint.Add "Tabelle7"

    Dim sheetName As Variant
    For Each sheetName In sheetsToPrint
        Sheets(sheetName).PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
    Next sheetName

    Unload Me
    Sheets("Tabelle1").Activate
End Sub

Diese Methode ist besonders nützlich, wenn Du viele CheckBoxen hast und die Codezeilen reduzieren möchtest.


Praktische Beispiele

Angenommen, Du hast eine Userform mit CheckBoxen für die Tabellen "Monat1", "Monat2" und "Monat3". Wenn Du nur die Blätter drucken möchtest, die überprüft wurden, kannst Du den oben genannten Code verwenden und die Namen der Tabellen entsprechend anpassen.


Tipps für Profis

  • Batch-Druck: Wenn Du viele Tabellen drucken möchtest, kannst Du die Sammlung nutzen, um die Druckaufträge zu bündeln.
  • Druckeinstellungen: Stelle sicher, dass Deine Druckeinstellungen in Excel korrekt konfiguriert sind, um unnötige Papierverschwendung zu vermeiden.
  • Testdruck: Führe einen Testdruck auf einem digitalen Drucker durch, um sicherzustellen, dass alles korrekt aussieht, bevor Du auf echtem Papier druckst.

FAQ: Häufige Fragen

1. Warum wird immer das gesamte Dokument gedruckt?
Das passiert, wenn die Druckanweisungen nicht in den entsprechenden If-Bedingungen stehen. Achte darauf, dass jede Druckanweisung innerhalb der entsprechenden If-Bedingung platziert ist.

2. Funktioniert das in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Versionen von Excel (ab 2007) funktionieren. Überprüfe jedoch immer die spezifischen Anforderungen Deiner Excel-Version.

3. Was kann ich tun, wenn die Druckausgabe nicht wie gewünscht aussieht?
Überprüfe die Druckeinstellungen in Excel und stelle sicher, dass die Druckbereiche korrekt definiert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige