unten stehendes Makro funktioniert zwar in einer Testdatei, in der eigentlichen Datei jedoch nicht.
Folgende Fehlermeldung erscheint bei TempName = String(1024, 0)'Einstellung des Standdarddruckers
"Projekt oder Bibliothek nicht gefunden".
Die gleiche Meldung erhalte ich bei "left" und "mid", wenn ich String bzw. left deaktiviert habe.
Ich habe das Makro aus der Testdatei 1 zu 1 in mein Tool kopiert. Daher weiss ich jetzt auch nicht, woran es liegen kann. Auch in einem anderen Tool arbeite ich mit diesem Makro und es funktioniert. Da mein Tool rd. 4 MB groß ist und auch gezippt nicht als link herunterzuladen ist, kann ich das Tool leider nicht einstellen.
Ich hoffe, Ihr könnt mir dennoch einen Tipp geben, woran es liegen kann.
Gruß
Uwe
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
Sub PDF()
On Error GoTo Ende
Application.ScreenUpdating = False
'nicht benötigtes Tabellenblatt ausblenden
Tabelle11.Visible = False
'alle anderen Tabellenblätter auswählen
Dim ii As Integer
For ii = 1 To Sheets.Count
If Sheets(ii).Visible = True Then
Sheets(ii).Select False
End If
Next ii
'PDF-Drucker einstellen und PDF-Datei erstellen
Application.ActivePrinter = "eDocPrinter PDF Pro auf Ne01:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"eDocPrinter PDF Pro auf Ne02:", Collate:=True _
'nicht benötigtes Tabellenblatt wieder einblenden
Tabelle11.Visible = True
Tabelle11.Select
Dim Drucker As String
Drucker = Application.ActivePrinter
Application.ActivePrinter = Drucker
'Standarddrucker wieder einstellen
Dim TempName As String
Dim DeviceNr As Long
Dim GetDefaultPrinter As String
TempName = String(1024, 0)
DeviceNr = GetProfileString("windows", "device", 0&, TempName, 1024)
If DeviceNr > 0 Then
GetDefaultPrinter = Left(TempName, InStr(TempName, ",") - 1) & " auf " & Mid(TempName, InStr(TempName, ":") - 4, 5)
End If
Application.ActivePrinter = GetDefaultPrinter
Ende:
End Sub