Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA: Makro zum Drucken, Standarddrucker

VBA: Makro zum Drucken, Standarddrucker
22.09.2004 15:19:13
Arnd
Hallo,
ich habe mir ein Makro zusammengebastelt, mit dem ich einen bestimmten Bereich einmal drucken kann.
Soweit so schön, nun möchte ich aber, dass beim Ausdrucken immer der Standarddrucker verwandt wird und nicht der zuletzt markierte. Ich möchte das automatisch einstellen können, ohne dafür manuell oder automatisch den Druckdialog öffnen zu müssen und dann per Hand den Drucker auswählen zu müssen.
Kann mir da jemand einen Tipp geben?
Vielen Dank
Arnd
AW: VBA: Makro zum Drucken, Standarddrucker
ypsilon
hi Arnd,
so in etwa:
aber du bekommst ne fehlermeldung wenn kein standarddrucker definiert ist !
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

Function GetDefaultPrinter() As String
Dim TempName As String
Dim DeviceNr As Long
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
End Function


Sub Drucken_mit_Standarddrucker()
ActiveWindow.SelectedSheets.PrintOut , ActivePrinter:=GetDefaultPrinter
End Sub

cu Micha
Anzeige
AW: VBA: Makro zum Drucken, Standarddrucker
yps
*grummel*
Declare gehört vor Function
cu Micha
AW: VBA: Makro zum Drucken, Standarddrucker
22.09.2004 16:59:16
Arnd
Hallo Micha,
danke für deine schnelle Antwort. Ich muss jetzt leider weg und kann es nicht direkt ausprobieren.
Wäre nett, wenn du vielleicht nochmal im Thread nachschauen könntest, ob ich noch eine Nachfrage hatte.
Vielen Dank
Arnd
AW: VBA: Makro zum Drucken, Standarddrucker
23.09.2004 09:12:57
Arnd
Guten Morgen Micha,
vielen Dank für den Code. Scheint zu klappen.
Ich habe noch eine Frage zu der von dir angesprochenden Fehlermeldung.
Ich habe es jetzt hier nicht geschafft, mein System so zu konfigurieren, dass ich keinen Standarddrucker eingestellt habe. Hat man nicht sobald man einen Drucker installiert hat, diesen automatisch als Standarddrucker festgelegt?
Aufgrund welchen Rückgabewertes von:
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
kann ich feststellen, dass kein Standarddrucker eingerichtet ist?
Will diesen Fehler abfangen, indem ich dann das Druckdialogfeld öffnen will, aber dazu muss ich ja wissen, wie sich ein nicht eingerichteter Standarddrucker erkennen läßt :-).
Falls du das selber nachschauen musst, werde ich es einfach heute abend zu Hause versuchen und bei meinem Rechner mal alle Drucker entfernen.
Gruß
Arnd
Anzeige
AW: VBA: Makro zum Drucken, Standarddrucker
yps
hi Arnd,
das müsste klappen:
If DeviceNr &gt 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
msgbox "Kein Standarddrucker eingestellt"
End If
cu Micha
AW: VBA: Makro zum Drucken, Standarddrucker
Arnd
Hallo,
ich habe deine Bedingung eingebaut und möchte nun das Dialogfenster Drucken öffnen. Welchen Objekttyp muss ich als Rückgabewert erwarten?

If DeviceNr &gt 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
MsgBox "Kein Standarddrucker eingestellt"
? = DialogDrucken()
End If

Sub DialogDrucken()
Const SeiteVon = 1
Const SeiteBis = 1
Const Kopien = 1
Application.Dialogs(xlDialogPrint).Show arg1:=2, arg2:=SeiteVon, arg3:=SeiteBis, arg4:=Kopien

Gruß Arnd
Anzeige
AW: VBA: Makro zum Drucken, Standarddrucker
Arnd
Hallo,
ich habe deine Bedingung eingebaut und möchte nun das Dialogfenster Drucken öffnen. Welchen Objekttyp muss ich als Rückgabewert erwarten?

If DeviceNr &gt 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
MsgBox "Kein Standarddrucker eingestellt"
? = DialogDrucken()
End If

Sub DialogDrucken()
Const SeiteVon = 1
Const SeiteBis = 1
Const Kopien = 1
Application.Dialogs(xlDialogPrint).Show arg1:=2, arg2:=SeiteVon, arg3:=SeiteBis, arg4:=Kopien

Gruß Arnd
AW: VBA: Makro zum Drucken, Standarddrucker
yps
hi Arnd,
mal im ganzen:

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


Sub Drucken_mit_Standarddrucker_oder_mit_Auswahldrucker()
ActiveWindow.SelectedSheets.PrintOut , ActivePrinter:=GetDefaultPrinter
End Sub

cu Micha
Anzeige
AW: VBA: Makro zum Drucken, Standarddrucker
Arnd
Hallo,
danke, ich habe gerade meinen Denkfehler bemerkt.
Schönen Tag noch
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge