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

Forumthread: Auswahl von Tabellenblätter via VBA drucken

Auswahl von Tabellenblätter via VBA drucken
16.04.2015 16:15:31
Tabellenblätter
Hallo zusammen
Nach etlichen Bemühungen von google und Foreneinträgen muss ich mich nun geschlagen geben. Folgendes Problem habe ich:
In einer Exceltabelle mit mehreren Worksheets habe ich ein Userform. Es soll als einfache Auswahlmöglichkeit dienen um möglichst einfach und schnell die benötigten Arbeitsblätter auszudrucken. Die können aber jeweils varieren und sollen daher einzeln via CheckBox ausgewählt werden können.
Bis dahin war es auch kein Problem soweit. Der direkte ausdruck der Seiten funktioniert einwandfrei. Dummerweise muss ich aber zuvor noch das Druckmenü aufrufen um Papierformat, Einzug und ähnliches manuell auswählen zu können. Und da beginnt das Problem. Ich schaff es zwar, dass es ein Worksheet da rein packt, oder nacheinander einzeln alle ausgewählten Sheets. Was ich aber nicht hinkriege ist, dass alle ausgewählten Sheets gleichzeitig in die vorschau kommen. Also so in etwa Ctrl + "Arbeitsblätter auswählen" "Ctrl + P" Markierter Bereich drucken.
Zur Zeit hab ich nicht mehr viel mehr als das hier:

Private Sub CommandButton1_Click()
If CheckBox1 = True Then Worksheets("Off CHF 0000").Select
If CheckBox2 = True Then Worksheets("Schema 1").Select
If CheckBox3 = True Then Worksheets("Schema 2").Select
If CheckBox4 = True Then Worksheets("Schema 3").Select
If CheckBox5 = True Then Worksheets("Schema 4").Select
If CheckBox6 = True Then Worksheets("Anlagenliste").Select
Application.Dialogs(xlDialogPrint).Show
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
.Select FALSE
16.04.2015 16:29:12
NoNet
Hey Astaldo,
um mehrere Blätter auszuwählen muss der Parameter FALSE hinter die entsprechenden .SELECT Anweisung :
... Worksheets("Schema 1").Select FALSE
... etc.
Gruß, NoNet
Hast Du Interesse, andere Excel-Begeisterte kennenzulernen ? - Dann komme zum
Exceltreffen 15.-17.05.2015 in Dresden

http://www.exceltreffen.de/index.php?page=248
Anmeldungen sind noch bis 17.04.2015 möglich ! - Schau doch mal rein !

Anzeige
AW: .Select FALSE
17.04.2015 08:50:36
Astaldo
Hallo NoNet
-.- Fast schon ein wenig peinlich. Ich hab unglaublich viel weiter gesucht und angefangen weitere Befehlszeilen einzufügen -.-
Vielen Dank auf jedenfall für deine Hilfe. Es klappt auch beinahe. Leider wählt es natürlich das aktive Worksheet auch aus, was aber nicht ideal ist. Nur gibt es kein Worksheet, welches absolut immer gedruckt wird. Kannst du mir evtl. noch sagen, wie ich dies verhindern kann? Resp. wie ich die erste (oder eben letzte) aktive Checkbox aktivieren kann? Meine Ideen gehen gerade in die Richtung, dass ich nach jedem Select nen if...Activate-Befehl einfüge. Mir scheint aber, dass dies zimmlich umständlich ist und bei grösseren Projekten zu langen Wartezeiten führt.

Anzeige
AW: .Select FALSE
17.04.2015 14:09:25
Astaldo
entschuldigt den Doppelpost bitte. Aber hab wohl in aller Eile den Hacken übersehen.

AW: .Select FALSE
18.04.2015 09:18:24
fcs
Hallo Astaldo,
man muss die zu druckenden Blatter in einem Daten-Array sammeln, um sie dann gruppieren und drucken/anzeigen zu können.
Statt mit Checkboxen zu arbeiten ist es aber einfacher mit einer Listbox mit Mehrfachauswahl die Blattauswahl durchzuführen. Dan brauch man sich im Code auch nicht um die Blattnamen zu kümmern, da die sichtbaren Blätter vor der Anzeige des Userforms in die Auswhlliste der Listbox geladen werden.
In der Beispieldatei sind 2 Userformen. Eine mit deinen Checkboxen, eine mit einer Listbox.
https://www.herber.de/bbs/user/97147.xlsm
Gruß
Franz

Anzeige
AW: .Select FALSE
20.04.2015 08:38:37
Astaldo
Hallo Franz
Vielen lieben Dank für deine Mühen. Die Listbox sieht definitiv besser aus, als erwartet. Ich hab Anfangs die Checkboxen gewählt, da ich davon ausgegangen bin, dass es anschaulicher ist für den User, da der Hauptuser doch relativ wenig Fähigkeiten hat im Umgang mit PCs, speziell mit Excel. Aber dein Vorschlag ist absolut das, was ich versucht hab zu kreieren. Vielen Dank dafür.
Gruss Astaldo
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Tabellenblätter via VBA drucken: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um mehrere Tabellenblätter in Excel über VBA zu drucken, kannst du ein Userform erstellen, das die Auswahl per Checkbox ermöglicht. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Erstelle ein Userform: Füge mehrere CheckBoxen für die verschiedenen Tabellenblätter hinzu.
  2. Füge einen Button hinzu: Dieser Button wird zum Auslösen des Druckbefehls verwendet.
  3. Verwende den folgenden VBA-Code:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim printList As Collection
    Set printList = New Collection

    If CheckBox1.Value Then printList.Add Worksheets("Off CHF 0000")
    If CheckBox2.Value Then printList.Add Worksheets("Schema 1")
    If CheckBox3.Value Then printList.Add Worksheets("Schema 2")
    If CheckBox4.Value Then printList.Add Worksheets("Schema 3")
    If CheckBox5.Value Then printList.Add Worksheets("Schema 4")
    If CheckBox6.Value Then printList.Add Worksheets("Anlagenliste")

    Dim wsArray() As Variant
    ReDim wsArray(0 To printList.Count - 1)

    Dim i As Integer
    For i = 1 To printList.Count
        Set wsArray(i - 1) = printList(i)
    Next i

    Union(wsArray).PrintPreview
End Sub

Dieser Code überprüft, ob die Checkboxen aktiviert sind und sammelt die ausgewählten Worksheets in einer Collection. Anschließend wird die PrintPreview-Methode aufgerufen, um die Druckvorschau für alle ausgewählten Blätter anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: Blätter werden nicht korrekt ausgewählt

    • Lösung: Stelle sicher, dass du FALSE hinter den .Select-Befehlen verwendest, um zu verhindern, dass das aktive Blatt ausgewählt wird. Beispiel:
      Worksheets("Schema 1").Select False
  • Fehler: Nur das aktive Blatt wird gedruckt

    • Lösung: Überprüfe, ob die Checkboxen vor dem Drucken korrekt ausgewählt sind und dass die Tabellenblätter in einer Array-Collection gesammelt werden.

Alternative Methoden

Anstelle von Checkboxen kannst du eine ListBox mit Mehrfachauswahl verwenden. Diese Methode ist oft benutzerfreundlicher und ermöglicht eine einfachere Handhabung der Blattauswahl:

  1. Füge eine ListBox zu deinem Userform hinzu.
  2. Lade die sichtbaren Blätter in die ListBox, bevor das Userform angezeigt wird.
  3. Verwende folgenden Code, um die ausgewählten Blätter zu drucken:
Private Sub CommandButton1_Click()
    Dim ws As Worksheet
    Dim selectedSheets As Collection
    Set selectedSheets = New Collection

    For Each ws In Me.ListBox1.Selected
        selectedSheets.Add ws
    Next ws

    Union(selectedSheets).PrintPreview
End Sub

Praktische Beispiele

Ein praktisches Beispiel für das Drucken eines bestimmten Tabellenblatts könnte so aussehen:

Sub DruckeBestimmtesBlatt()
    Worksheets("MeinTabellenblatt").PrintOut
End Sub

Für das Drucken mehrerer Blätter, die über eine ListBox ausgewählt wurden, kannst du den oben genannten Code verwenden.


Tipps für Profis

  • Nutze Excel VBA zur Automatisierung: Automatisiere häufige Druckvorgänge, um Zeit zu sparen.
  • Experimentiere mit Druckeinstellungen: Stelle sicher, dass du alle benötigten Einstellungen wie Papierformat und Ausrichtung im Code festlegst.
  • Verwende Error-Handling: Implementiere Fehlerbehandlung in deinem VBA-Code, um unerwartete Probleme beim Drucken zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur die ausgewählten Blätter gedruckt werden? Um sicherzustellen, dass nur die ausgewählten Blätter gedruckt werden, verwende eine Collection, um die Blätter zu sammeln und dann die Union-Methode.

2. Kann ich die Druckvorschau anpassen? Ja, du kannst die Druckvorschau anpassen, indem du die PrintPreview-Methode verwendest und vorher die Druckeinstellungen wie Seitenlayout und Papierformat festlegst.

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