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

Durch Kontrollkästchen ausgewählte Sheets Drucken

Forumthread: Durch Kontrollkästchen ausgewählte Sheets Drucken

Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 10:05:18
Dennis
Hallo,
ich möchte über einen "Auswahl Drucken" Button, die zuvor durch Kontrollkästchen ausgewählten Sheets ausdrucken und wenn möglich, bevor der Druck starte noch Zugriff auf die Druckvorschau/optionen haben. Zum Verständnis habe ich eine Datei als Beispiel beigefügt. https://www.herber.de/bbs/user/91965.xlsm
Vielen Dank im Voraus
Dennis

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 10:21:11
Daniel
Hi
1. Weise jedem Kontrollkästchen eine Ausgabezelle zu, im Idealfall die Zellen C4-C6.
das geht über das Kontextmenü des Kästchen mit Steuerelement formatieren - Steuerung - Zellverküpfung
die Schriftfarbe der Zellen setzt du weiss, damit der Inhalt (WAHR / FALSCH , je nachdem, ob das Häkchen gesetzt ist oder nicht) nicht stört.
2. Füge folgendes Makro in ein allgemeines Modul ein und weise es dem Druck-Button zu:

Sub Schaltfläche94_Klicken()
Dim Zelle As Range
Dim chk As Boolean
chk = True
For Each Zelle In Range("C4:C6")
If Zelle.Value Then
Sheets(Zelle.Offset(0, -1).Value).Select chk
chk = False
End If
Next
If chk = False Then ActiveWindow.SelectedSheets.PrintPreview
End Sub
3. Achte darauf, dass in Spalte B genau der selbe Text steht, wie auf dem dazugehörigen Tabellenblattreiter, sonst kann das Makro das Blatt nicht finden.
Gruß Daniel

Anzeige
AW: Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 10:53:19
Dennis
Hallo Daniel,
danke für die schnelle Hilfe. Der Code funktioniert wunderbar wenn nur ein einzelnes Kontrollkästchen ausgewählt ist. Sind jedoch mehrer Kästchen ausgewählt erscheint folgende Fehlermeldung:
Laufzeitfehler '9':
Index außerhalb des gültigen Bereiches
Laut Debugger ist diese Zeile im Code Fehlerhaft:
Sheets(Zelle.Offset(0, -1).Value).Select chk
Kannst du mir sagen wie der Code aussehen muss wenn mehrere Kästchen aktiviert sind und die entsprechenden Ausdrucke erstellt werden sollen.
!?

Anzeige
AW: Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 10:59:20
Daniel
du hast den 3. Punkt meiner Anweisung nicht gelesen, bzw nicht umgesetzt.
Das Makro such das Tabellenblatt mit dem Text, der in der Zelle in Spalte B steht, dh in den Zellen muss genau der Tabellenblattname stehen.
Gruß Daniel

AW: Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 11:00:59
Dennis
Sorry, hat sich schon erledigt, hatte, wie du geschrieben hast mit der Bennenung der Mappenreiter zutun.
Gibt es eine Möglichkeit diesen Fehler anderweitig zu umgehen, da diese reiter eventuell häufiger umbenannt werden.

Anzeige
AW: Durch Kontrollkästchen ausgewählte Sheets Drucken
08.08.2014 11:15:45
Daniel
Hi
1. Füge in der Spalte D einen einfach Zellverküpfung auf das dazugehörige Blatt ein (=Tabelle1!A1)
2. Ändere den Code so ab:
Sub Schaltfläche94_Klicken()
Dim Zelle As Range
Dim chk As Boolean
Dim TB as string
chk = True
For Each Zelle In Range("C4:C6")
If Zelle.Value Then
TB = Zelle.Offset(0, 1).Formula
TB = Split(TB, "!")(0)
TB = Replace(TB, "'", "")
TB = Mid(TB, 2)
Sheets(TB).Select chk
chk = False
End If
Next
If chk = False Then ActiveWindow.SelectedSheets.PrintPreview
End Sub
der Zellbezug in der Zelle passt sich automatisch an, wenn du den Blattnamen änderst.
der Code liest dann die Formel dieses Zellbezugs und extrahiert daraus den Blattnamen.
Was dann in Spalte B steht, ist egal, dh du kannst dort auch einen Hinweistext eingeben, der für den Anwender besser verständlich ist als vielleicht nur den reine Blattname.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Durch Kontrollkästchen ausgewählte Sheets drucken


Schritt-für-Schritt-Anleitung

  1. Zuweisung der Ausgabezellen: Weise jedem Kontrollkästchen eine Ausgabezelle zu, zum Beispiel die Zellen C4-C6. Dies geschieht über das Kontextmenü des Kontrollkästchens. Wähle „Steuerelement formatieren“ und dann „Steuerung“ gefolgt von „Zellverknüpfung“.

  2. Schriftfarbe anpassen: Setze die Schriftfarbe der Zellen auf Weiß, damit der Inhalt (WAHR / FALSCH) nicht sichtbar ist.

  3. Makro erstellen: Füge folgendes Makro in ein allgemeines Modul ein und weise es dem Druck-Button zu:

    Sub Schaltfläche94_Klicken()
        Dim Zelle As Range
        Dim chk As Boolean
        chk = True
        For Each Zelle In Range("C4:C6")
            If Zelle.Value Then
                Sheets(Zelle.Offset(0, -1).Value).Select chk
                chk = False
            End If
        Next
        If chk = False Then ActiveWindow.SelectedSheets.PrintPreview
    End Sub
  4. Tabellenblattnamen prüfen: Achte darauf, dass in Spalte B genau der gleiche Text steht wie auf dem entsprechenden Tabellenblattreiter, damit das Makro das Blatt korrekt finden kann.


Häufige Fehler und Lösungen

  • Laufzeitfehler '9': Index außerhalb des gültigen Bereichs: Dieser Fehler tritt auf, wenn mehrere Kontrollkästchen ausgewählt sind und der entsprechende Blattname in Spalte B nicht korrekt ist. Überprüfe, ob der Text in Spalte B mit dem Blattnamen übereinstimmt.

  • Blattnamen ändern: Wenn die Blattnamen häufig umbenannt werden, kannst du eine Zellverknüpfung in Spalte D erstellen, um die Anpassung zu erleichtern. Der Code wird dann angepasst, um den Blattnamen dynamisch zu lesen.


Alternative Methoden

Eine alternative Methode besteht darin, die Zellverknüpfung zu nutzen, um den Blattnamen automatisch zu aktualisieren. Hierzu kannst du in Spalte D den Zellbezug zu dem entsprechenden Blatt einfügen, beispielsweise:

=Tabelle1!A1

Ändere anschließend den Code wie folgt:

Sub Schaltfläche94_Klicken()
    Dim Zelle As Range
    Dim chk As Boolean
    Dim TB As String
    chk = True
    For Each Zelle In Range("C4:C6")
        If Zelle.Value Then
            TB = Zelle.Offset(0, 1).Formula
            TB = Split(TB, "!")(0)
            TB = Replace(TB, "'", "")
            TB = Mid(TB, 2)
            Sheets(TB).Select chk
            chk = False
        End If
    Next
    If chk = False Then ActiveWindow.SelectedSheets.PrintPreview
End Sub

Durch diese Anpassung wird der Blattname aus der Formel extrahiert und ist somit dynamisch.


Praktische Beispiele

Angenommen, du hast drei Kontrollkästchen, die die Sheets „Umsatz“, „Kosten“ und „Gewinn“ repräsentieren. Wenn du in Spalte B die Namen entsprechend einträgst und die Kontrollkästchen korrekt verknüpfst, wirst du in der Lage sein, die ausgewählten Sheets direkt über den Druck-Button auszudrucken.


Tipps für Profis

  • Versteckte Blätter: Achte darauf, dass die Blätter, die du drucken möchtest, nicht ausgeblendet sind. Das Makro kann nur auf sichtbare Blätter zugreifen.

  • Druckeinstellungen: Nutze die Druckvorschau, um sicherzustellen, dass die Formatierung der Blätter korrekt ist, bevor du sie druckst.

  • Benutzerfreundliche Bezeichnungen: Verwende in Spalte B aussagekräftige Texte, die den Nutzern helfen, die Auswahl zu verstehen, anstatt nur die Blattnamen zu verwenden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Blätter gleichzeitig drucken?
Du kannst mehrere Kontrollkästchen aktivieren, und das angepasste Makro wird alle ausgewählten Blätter in der Druckvorschau anzeigen.

2. Was mache ich, wenn ich den Blattnamen häufig ändere?
Nutze Zellverknüpfungen in einer zusätzlichen Spalte, um den Blattnamen dynamisch zu lesen. So musst du den Text in Spalte B nicht anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige