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

Forumthread: Druck mit Button per VBA

Druck mit Button per VBA
19.03.2016 08:40:20
MB12
Hallo zusammen,
meine "Monster-Mappe" vergrößert sich mal wieder.
Zusätzlich zum Ausdruck einzelner Blätter als Besprechungsvorlage soll jeweils noch ein zugehöriges Auswertungsblatt mit komplett anderen Formatierungen gedruckt werden. Hatte schon versucht, mit der Kamera die Auswertung nach einem Seitenumbruch einzufügen, aber das funktioniert nicht richtig.
Beispiel: Druck Blätter Aa und Aax, Blätter Ab und Abx, Blätter Ba und Bax usw.
Hauptblatt Aa Format A3 längs mit angepassten Seitenrändern, definiertem Druckbereich und "Druck auf einer Seite", Zusatzblatt Aax: A4 längs, horizontal zentriert, Rest Standard.
Auf dem Hauptblatt am besten Druckbefehl mit Button in M2
Noch komfortabler wäre, wenn ich gar keine Zusatzblätter erstellen müsste. Die Daten für die Auswertungen liegen alle im Blatt Xxx und könnten jeweils als Bereich definiert werden.
Beispiel: Daten für Aax im Blatt Xxx im Bereich A2 bis C6, für Abx im Bereich A6 bis C20 usw.; maximal 15 Zeilen. Der Name des Hauptblatts steht jeweils in der 1. Zeile des Bereichs in Spalte C, also z.B. in C2, C6 usw.
Das Warten auf Eure Vorschläge wird für mich spannender als das Qualifying in Australien von eben….. Danke Euch schon jetzt :-)

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druck mit Button per VBA
19.03.2016 12:18:29
Hans
Moin moin,
mal sehen, ob dir das hilft:
Sub Drucken()
' Drucken Makro
Sheets("Rechnung").Select
ActiveWindow.SmallScroll Down:=-114
ActiveWindow.SelectedSheets.PrintOut Copies:=2
Sheets("Hauptseite").Select
End Sub

So hab ich das gemacht.
"Sheets" = Dein zu druckendes Blatt
"Copies" = die Menge der zu druckenden Seiten
Viel Spaß beim probieren
HANS

Anzeige
Druck bestimmter Blätter mit Button per VBA
19.03.2016 13:42:13
MB12
Hallo Hans,
danke für deine Antwort, aber damit werde ich nicht zurechtkommen. Die Datei ist zu umfangreich, um die passenden Blätter zu finden, Fehler und Ärger bei den Assistenten sind vorprogrammiert.
Nochmal ein Beispiel:
Für die Besprechung Aa gehe ich ins Blatt Aa und gebe über einen Button in der Zelle A1 den Druckbefehl. Dadurch werden Blatt Aa und das zugehörige Blatt Aax, das sich an einer anderen Stelle befindet, gedruckt. Das gleiche für Besprechung Ab, Ba, Bb usw. Die Zusatzblätter werden immer den gleichen Namen wie die Hauptblätter haben, aber mit Zusatz "x".
Also danke für deine Mühe, aber ich muss nochmal um Unterstützung bitten.
Beste Grüße
Margarete

Anzeige
AW: Druck bestimmter Blätter mit Button per VBA
21.03.2016 09:00:30
ChrisL
Hi
Siehe Anhang:
https://www.herber.de/bbs/user/104488.xlsm
Im Beispiel geht es mehr um das prinzipielle Vorgehen. Die einzelnen Druck- und Formatierungsbefehle müsstest du mit dem Makrorekorder rausfinden.
Den Button auf Tabellen Aa, Bb usw. weist du folgenden Code zu:
Private Sub CommandButton1_Click()
Call druck1(ActiveSheet)
End Sub

Im Standardmodul steht dann:
Sub druck1(WS1 As Worksheet)
Dim WS2 As Worksheet
Set WS2 = Worksheets(WS1.Name & "x")
MsgBox "Druck Blatt: " & WS1.Name
MsgBox "Druck Blatt: " & WS2.Name
'WS1.PrintOut
'WS2.PrintOut
Call druck2
End Sub Sub druck2()
Dim WS3 As Worksheet
Set WS3 = Worksheets("immer")
MsgBox "Druck Blatt: " & WS3.Name
'WS3.PrintOut
End Sub
cu
Chris

Anzeige
erledigt: Druck bestimmter Blätter
21.03.2016 11:56:55
MB12
Hallo Chris,
du hast dir ja wirklich - auch mit der Beispieldatei - viel Mühe gegeben, mir zu helfen.
Inzwischen habe ich von Herbert und Michael eine prima Lösung erhalten. Warum das nicht im Thread steht, kann ich nicht erklären.
Trotzdem hilft mir diese Datei für kommende Fälle.
Euch allen herzlichen Dank
Margarete
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Druck mit Button in Excel per VBA


Schritt-für-Schritt-Anleitung

Um einen Druck Button in Excel zu erstellen, der per VBA gedrückt werden kann, folge diesen Schritten:

  1. Entwicklertools aktivieren:

    • Gehe zu "Datei" > "Optionen" > "Menüband anpassen" und aktiviere "Entwicklertools".
  2. Button einfügen:

    • Klicke auf die Registerkarte "Entwicklertools" und wähle "Einfügen". Wähle den "Button (Formularsteuerelement)" aus und ziehe diesen auf das Arbeitsblatt.
  3. Makro zuweisen:

    • Nach dem Einfügen des Buttons öffnet sich ein Fenster, in dem Du ein Makro zuweisen kannst. Wähle ein bestehendes Makro oder klicke auf "Neu", um ein neues Makro zu erstellen.
  4. VBA-Code schreiben:

    • Schreibe den VBA-Code, um die gewünschten Blätter zu drucken. Ein einfacher Code könnte so aussehen:
    Sub Drucken()
       Sheets("Hauptblatt").PrintOut Copies:=1
       Sheets("Zusatzblatt").PrintOut Copies:=1
    End Sub
  5. Button testen:

    • Klicke auf den Button, um sicherzustellen, dass der Druckvorgang wie gewünscht funktioniert.

Häufige Fehler und Lösungen

  • Fehler: "Das Blatt kann nicht gefunden werden"
    Lösung: Überprüfe die Blattnamen im VBA-Code. Stelle sicher, dass die Namen exakt übereinstimmen.

  • Fehler: Druck wird nicht ausgeführt
    Lösung: Stelle sicher, dass das Makro richtig zugewiesen wurde und dass Du die richtigen Berechtigungen für das Ausführen von Makros hast.

  • Fehler: Druckformat stimmt nicht
    Lösung: Überprüfe die Seiteneinstellungen in Excel, um sicherzustellen, dass das Format (A4, A3 etc.) korrekt ist. Verwende ActiveSheet.PageSetup für spezifische Anpassungen.


Alternative Methoden

  • VBA-Druck über Schaltflächen: Anstatt einen Button aus den Entwicklertools zu verwenden, kannst Du auch ActiveX-Steuerelemente nutzen. Diese bieten mehr Anpassungsmöglichkeiten.

  • Druckbereich definieren: Du kannst den Druckbereich für spezifische Blätter festlegen, bevor Du den Druckbefehl ausführst. Nutze dazu die Funktion ActiveSheet.PageSetup.PrintArea.

  • Makrorekorder verwenden: Wenn Du dir unsicher bist, welchen VBA-Code Du verwenden sollst, kannst Du den Makrorekorder nutzen, um die Schritte aufzuzeichnen und den entsprechenden Code zu erhalten.


Praktische Beispiele

  1. Drucken von zwei Blättern:

    Sub DruckenBeispiel()
       Sheets("Blatt1").PrintOut
       Sheets("Blatt2").PrintOut
    End Sub
  2. Drucken mit zentriertem Layout:

    Sub DruckenZentriert()
       With ActiveSheet.PageSetup
           .CenterHorizontally = True
           .CenterVertically = True
       End With
       ActiveSheet.PrintOut
    End Sub
  3. Button für mehrere Blätter:

    Sub ButtonDrucken()
       Dim wsN As Worksheet
       For Each wsN In ThisWorkbook.Worksheets
           If wsN.Name Like "*x" Then
               wsN.PrintOut
           End If
       Next wsN
    End Sub

Tipps für Profis

  • Drucken mit Rückmeldung: Füge MsgBox-Befehle hinzu, um Rückmeldungen über den Druckstatus zu erhalten.

  • Fehlerbehandlung implementieren: Verwende On Error Resume Next, um Fehler abzufangen und zu dokumentieren.

  • Druckbereich dynamisch anpassen: Nutze VBA, um den Druckbereich je nach Inhalt automatisch anzupassen.


FAQ: Häufige Fragen

1. Wie kann ich einen Druck Button in Excel erstellen?
Du kannst einen Button aus den Entwicklertools einfügen und ein Makro zuweisen, das den Druckvorgang steuert.

2. Welche Excel-Versionen unterstützen VBA?
VBA ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010, 2013, 2016 und 2019.

3. Kann ich mehrere Blätter gleichzeitig drucken?
Ja, du kannst mehrere Blätter in einem VBA-Makro angeben, um sie in einem Durchgang zu drucken.

4. Wie kann ich die Druckeinstellungen anpassen?
Du kannst die Seiteneinstellungen im VBA-Code mit PageSetup anpassen, um z.B. das Layout zu zentrieren.

5. Was ist der Unterschied zwischen Formular-Buttons und ActiveX-Buttons?
Formular-Buttons sind einfacher und schneller zu verwenden, während ActiveX-Buttons mehr Funktionen und Anpassungsmöglichkeiten bieten.

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