230 Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich wollte in mein Exceldokument 3 Buttons einbauen, damit man hier leichter das Tabellenblatt drucken kann.
Die Buttons konnte ich einfügen. Die Tabellen sind erstellt. Ein Marko habe ich auch eingebaut.
Er meckert jedes Mal in Zeile 2. Habe hier schon diverse Tabellennamen versucht. Mit Leerzeichen ohne Leerzeichen. Mal ein anderes Tabellenblatt. Nichts, immer Fehler. Habe ich einen Denkfehler oder ist der Code nicht korrekt?

Sub DruckenTracheo()
Worksheets(„Stammdaten“).Activate
With ActiveSheet
.PageSetup.PrintArea = "A1:H20"
.PrintPreview
.PrintOut Copies:=1
End With
End Sub

Gruß

3 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo,

falls das so bei dir im Code steht

Worksheets(„Stammdaten“).Activate

verursacht das einen Fehler. Die richtige Schreibweise ist so:

Worksheets("Stammdaten“).Activate

Auf Activate kannst du verzichten:

Sub DruckenTracheo()

With Worksheets("Stammdaten")
  .PageSetup.PrintArea = "A1:H20"
  .PrintPreview
  .PrintOut Copies:=1
End With

End Sub

Gruß

M.O.

0 Punkte
Beantwortet von
Hi,

danke für deine Antwort. Mit dieser klappt es.
Ich bekomme ein Vorschaufenster zu sehen, was gut ist.
Allerdings kann ich keinen Drucker auswählen und auch den Druck nicht abbrechen. ist dies normal? Wenn ich X drücke, druckt er das Dokument, wenn ich die Seitenansicht schließe ebenfalls.

Gibt es die zusätzliche Option des Abbrechens und des Drucker auswählens auch?

Gruß
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)

Hallo,

du hast im Makro ja auch nur gesagt, dass er die Druckvorschau aktivieren und ausdrucken soll wink.

Versuche es mal so:

Sub DruckenTracheo()
Dim Rückgabe
Dim strPrinterName As String

With Worksheets("Stammdaten")
  .PageSetup.PrintArea = "A1:H20"
  .PrintPreview       'Seitenansicht aktivieren
   'Nach beenden der Seitenansicht
  'Rückfrage, ob Druck gestartet werden soll
  Rueckgabe = MsgBox("Soll der Ausdruck gestartet werden?", vbYesNo + vbDefaultButton1, "Ausdruck starten?")

  Select Case Rueckgabe

  Case vbYes
    'falls ja, dann
    'Drucker auswählen
    'aktiven Drucker in Variable speichern
    strPrinterName = Application.ActivePrinter
    'Druckerauswahl aufrufen
    Application.Dialogs(xlDialogPrinterSetup).Show
    'ausdrucken
    .PrintOut Copies:=1
    'wieder alten Standarddrucker zuweisen
    Application.ActivePrinter = strPrinterName

   Case vbNo
     'Ausdruck abbrechen
      Exit Sub
   
   
 End Select

End With

End Sub

Gruß

M.O.

...