Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Speichern und Druck auf Standarddrucker

Speichern und Druck auf Standarddrucker
18.02.2021 11:05:23
Maxe
Hallo,
ich möchte in einer Excelmappe eine Schaltfäche einfügen mit der das Tabellenblatt 1 automatisch mit einem bestimmten Namen gespeichert wird und dann an den Standarddrucker des Bearbeiters ausgedruckt wird.
Es handelt sich um Netzwerkdrucker.
Bisher sieht es so aus:
Sub SpeichernundDrucken()
Const myPath = "\\servername1\übergabe\"
ActiveWorkbook.SaveAs myPath & Format(Now, "yyyymmdd" & Range("B19") & ".xlsx"
End Sub
Sollte das mit dem Speichern klappen, ist die Frage nach dem Standarddrucker offen.
Kann mir bitte jemand helfen?
Danke und Grüße
Maxe

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern und Druck auf Standarddrucker
18.02.2021 11:27:36
Maxe
Ok, habe festgestellt, dass mein obiger Code auch beim Speichern nicht funktioniert..
AW: Speichern und Druck auf Standarddrucker
18.02.2021 11:47:08
Nepumuk
Hallo Maxe,
teste mal:
Option Explicit

Public Sub SpeichernundDrucken()
    
    Const myPath = "\\servername1\übergabe\"
    
    ThisWorkbook.SaveAs myPath & Format(Date, "yyyymmdd") & Range("B19").Text & ".xlsx"
    
    ActiveSheet.PrintOut ActivePrinter:=Standard_Printer
    
End Sub

Private Function Standard_Printer() As String
    Dim objWMI As Object, objItem As Object
    Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
        ExecQuery("SELECT * FROM Win32_Printer WHERE DEFAULT = 'True'")
    For Each objItem In objWMI
        Standard_Printer = objItem.Name
    Next
    Set objWMI = Nothing
End Function

Gruß
Nepumuk
Anzeige
AW: Speichern und Druck auf Standarddrucker
18.02.2021 12:38:26
Maxe
Hallo Nebumuk,
danke.
Bei
ThisWorkbook.SaveAs myPath & Format(Date, "yyyymmdd") & Range("B19").Text & ".xlsx"
meldet es Laufzeitfehler 1004: DIe Methode SaveAs für das Objekt _Workbook ist fehlgeschlagen.
Idee?
Grüße
Maxe
AW: Speichern und Druck auf Standarddrucker
18.02.2021 12:54:27
Nepumuk
Hallo Maxe,
was steht in B19?
Gruß
Nepumuk
AW: Speichern und Druck auf Standarddrucker
18.02.2021 14:22:26
Maxe
Hallo,
ein Kundenname.
Das Workbook hat zwei Worksheets.
Worksheet1 heißt "Übergabebeleg"
Worksheet2 heißt "Tabelle1" und beinhaltet Tabellen für Dropdownmenüs
Gruß
Maxe
AW: Speichern und Druck auf Standarddrucker
18.02.2021 14:29:13
Nepumuk
Hallo Maxe,
keine "verbotenen Zeichen" wie: : | / \ * ?...
Gruß
Nepumuk
Anzeige
AW: Speichern und Druck auf Standarddrucker
19.02.2021 09:18:59
Maxe
Hallo,
in B19 steht ein Name nur mit Buchstaben.
Anbei der Code:
Option Explicit
Public Sub Schaltfläche5_Klicken()
Const myPath ="\\az01v4\\DATEN\Formulare\Übergabescheine\"
ThisWorkbook.SaveAs myPath & Format(Date, "yyyymmdd") & Worksheet("Übergabeschein").Range("B19") _
& ".xlsx"
ActiveSheet.PrintOut ActivePrinter:=Standard_Printer
End Sub
Private Function Standard_Printer() As String
Dim objWMI As Object, objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\comv2"). _ ExecQuery("Select * from Win32_Printer where Default = 'True'") For Each objItem In objWMI Standard_Printer = objItem.Name Next Set objWMI = Nothing End Function
Grüße
Maxe
Anzeige
AW: Speichern und Druck auf Standarddrucker
19.02.2021 09:43:36
Nepumuk
Hallo Maxe,
nicht Worksheet sondern Worksheets
Gruß
Nepumuk
AW: Speichern und Druck auf Standarddrucker
19.02.2021 09:59:27
Maxe
Hallo,
Meldung:
Laufzeitfehler '1004':
Die Methode 'SaveAs' für das Objekt '_Workbook' ist fehlgeschlagen.
Gruß
Maxe
AW: Speichern und Druck auf Standarddrucker
19.02.2021 10:05:13
Nepumuk
Hallo Maxe,
kann ich nicht nachvollziehen.
Gruß
Nepumuk
AW: Speichern und Druck auf Standarddrucker
19.02.2021 12:34:30
Maxe
Hallo,
ich habe jetzt den Fehler gefunden:
Ich habe im Pfad den Servernamen gelöscht und durch den angezeigten Laufwerksbuchstaben ersetzt.
Und weil ich beim Standarddrucker einen Laufzeitfehler erhalten habe, habe ich testweise das Script eines anderen Forenbeitrages genutzt.
Vielen Dank für die Hilfe!
Gruß
Maxe
Das Script sieht nun so aus:
Option Explicit
Declare

Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" _
(ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, _
ByVal lpReturnedString As String, ByVal nSize As Long) As Long

Sub SpeichernundDrucken()
Const myPath ="G:\Formulare\Übergabescheine\"
ThisWorkbook.SaveAs myPath & Format(Date, "yyyymmdd") & "-" & Range("B19") & ".xls"
ActiveSheet.PrintOut ActivePrinter:=GetDefaultPrinter
MsgBox "Der Übergabeschein wurde automatisiert gespeichert und gedruckt. Bitte den Ausdruck am  _
Drucker entnehmen", vbOKCancel + vbInformation, "Information"
End Sub

Function GetDefaultPrinter() As String
Dim TempName As String
Dim DeviceNr As Long
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
If DeviceNr > 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
GetDefaultPrinter = Application.Dialogs(xlDialogPrinterSetup).Show
End If
End Function

Anzeige
ein Backslash in myPath zu viel ? oT
19.02.2021 10:18:57
Anton

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige