AW: Es sei dir verziehen...
17.11.2003 13:47:22
Franz W.
Hallo Rainer,
für aus der Hand allerdings richtig!! Tät mich das noch nicht so schnell trauen (außer vielleicht mal so ein einzelnes "Select" zu eliminieren oder so in dieser Güteklasse ;-))).
Hab Dir übrigens gaaaanz weit unten beim Thema Standarddrucker am 13.11. noch ne Frage gestellt. Aber wenn bei Dir auch die Mailbenachrichtigung nichts tut momentan, hast Du's wahrscheinlich nicht gelesen. Ich erlaube mir mal, meinen Beitrag komplett hier reinzukopieren, auch wenn er nicht zum Thema passt:
Hallo Rainer,
wollte Deine Lösung jetzt einsetzen, bin aber nicht in der Lage das zu integrieren. Habe versucht die Aufzeichnung des Makrorekorders entsprechend abzuändern, das klappt aber nicht, und ich weiß leider gar nicht in welche Richtung in denken soll. (Poste der Einfachheit halber alles noch mal komplett hier rein, es geht um das letzte Makro:
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
Declare
Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" _
(ByVal lpAppName 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)
If DeviceNr > 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1)
Else
GetDefaultPrinter = "No Default Printer"
'oder zum besseren Testen
'Achtung: "False" = KEIN Boolean Wert
'NUR ein String
'GetDefaultPrinter = "False"
End If
End Function
Sub Standarddrucker()
MsgBox "Der Windows-Standarddrucker ist: " & GetDefaultPrinter, 48
End Sub
Sub Drucken_mit_Standarddrucker()
' Application.ActivePrinter = "HP LaserJet 4L auf LPT1:"
Application.ActivePrinter = GetDefaultPrinter & "auf LPT1:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
GetDefaultPrinter & "auf LPT1:", Collate:=True
End Sub
Bei der Zeile : Application.ActivePrinter = GetDefaultPrinter & "auf LPT1:" bricht er ab mit der Meldung:
" Die Methode 'ActivePrinter' für das Objekt '_Application' ist fehlgeschlagen."
Vielleicht kannst Du mir noch mal helfen, falls Du "soweit unten" noch mal reinschaust :-))
GrüßeFranz