Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
544to548
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
544to548
544to548
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wenn kein Drucker, dann abbrechen ?

Wenn kein Drucker, dann abbrechen ?
09.01.2005 19:25:26
walter
Guten Abend,
ich habe ein Druckmenü, siehe Makro, da meine Datei auf dem Laptop auch genutzt
wird, kann es passieren das man den Druckbutton drückt.
Ich möchte das man dies über einen Zusatz verhindert so...
Wenn kein Drucker vorhanden , MsgBox "kein Drucker angeschlossen".
Geht das ?
Hier mein Makro:

Sub NW_Kulanzblat_Verkäufer_Drucken()
Application.ScreenUpdating = False
Dim kbl_verkäufer
kbl_verkäufer = Sheets("Kulanzblatt-VK").[F12]
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(0.511)              'linker Rand
.RightMargin = Application.InchesToPoints(0.236)             'rechter Rand
.TopMargin = Application.InchesToPoints(0.236)               'oberer Rand
.BottomMargin = Application.InchesToPoints(0.314)            'unterer Rand
.HeaderMargin = Application.InchesToPoints(0.157)            'Kopfzeile
.FooterMargin = Application.InchesToPoints(0.157)            'Fußzeile
.Zoom = False
' .Orientation = xlLandscape                                 'Querformat
.Orientation = xlPortrait                                  'Hochformat
End With
With ActiveSheet.PageSetup
.LeftFooter = "&""Courier New,Standard""&6&F" & "/ erstellt: " & kbl_verkäufer
.RightFooter = "&""Courier New,Standard""&6Version 5.0 &F   &D/&T"
End With
Range("B1:R80").Select
ActiveSheet.PageSetup.PrintArea = "$B$1:$R$80"
Range("C1").Select
' ActiveWindow.SelectedSheets.PrintPreview                       'Seitenansicht
ActiveWindow.SelectedSheets.PrintOut Copies:=1
Application.ScreenUpdating = False
End Sub

Gruß Walter

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn kein Drucker, dann abbrechen ?
09.01.2005 19:34:34
Josef
Hallo Walter!
Füge am Anfang deiens Makros deise Zeilen ein.


If Application.ActivePrinter = "" Then
MsgBox "Kein Drucker angeschlossen!"
Exit Sub
End If


Gruß Sepp
Leider nicht.
09.01.2005 19:49:11
walter
Hallo Sepp,
habe dein Muster am Anfang rein kopiert, leider ohne Erfolg.
Auch am Ende.
Hatte gerade an meinem Laptop getestet.
Laptop ist nur am Netzwerk angeschlossen, da ich die Datei kopiert habe.
Gruß Walter
Anzeige
AW: Leider nicht.
09.01.2005 20:03:26
Josef
Hallo Walter!
ich habe nicht bedacht, dass .ActivePrinter nicht "" zurückgibt
wenn kein Drucker gefunden wird!
Probier mal so:

If Application.ActivePrinter Like ("Un*") Then
MsgBox "Kein Drucker angeschlossen!"
Exit Sub
End If

Gruß Sepp
Fehlermeldung
09.01.2005 20:17:03
walter
Hallo Sepp,
habe dein Makro direkt am Anfang kopiert, leider reagiert das Druckmenü und kurz darauf
kommt die Druckerfehlermeldung:
Fehler beim Schreiben auf LPT1: usw. ...
Gruß Walter
AW: Fehlermeldung
09.01.2005 22:46:38
Josef
Hallo Walter!
Dann versuchen wir es anders!
Kopiere diesen Code in ein allgemeines Modul (am besten ein neues!)


      
Private Declare Function GetProfileString Lib "kernel32" _
        
Alias "GetProfileStringA" (ByVal lpAppName As String, _
        
ByVal lpKeyName As StringByVal lpDefault As String, _
        
ByVal lpReturnedString As StringByVal nSize As Long) _
        
As Long
Public Function GetStdPrinterName() As String
  
Dim Buffer As String
  
Dim n As Integer, i As Integer
    
    Buffer = Space(8192)
    n = GetProfileString(
"windows""Device""", Buffer, Len(Buffer))
    
If n Then
      Buffer = Mid(Buffer, 1, n)
      i = InStr(Buffer, 
",")
      GetStdPrinterName = Mid(Buffer, 1, i - 1)
    
Else
      GetStdPrinterName = 
""
    
End If
End Function 


Und diesen Code verwendest du am Anfang deines makros!


      
If GetStdPrinterName = "" Then
    MsgBox 
"Kein Drucker gefunden!"
    Exit Sub
End If 


Damit wird der Standarddrucker ausgelesen!
Ich hoffe jetzt klappt's;-)
Gruß Sepp
Anzeige
Danke teste morgen früh...
09.01.2005 22:55:13
walter
Hallo Sepp,
werde es morgen früh testen.
Gruß Walter
Leider noch nicht...
10.01.2005 11:45:35
walter
Hallo Sepp,
leider immer noch das normale Windows Fehler LPT1 menü.
Habe mit F8 festgestellt das nach:
Private 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
Public 

Function GetStdPrinterName() As String
Dim Buffer As String
Dim n As Integer, i As Integer
Buffer = Space(8192)
n = GetProfileString("windows", "Device", "", Buffer, Len(Buffer))
If n Then
Buffer = Mid(Buffer, 1, n)
i = InStr(Buffer, ",")
GetStdPrinterName = Mid(Buffer, 1, i - 1)
Else
GetStdPrinterName = ""
End If
End 

Function
sofort auf:  "End if" geht, also nicht "Exit Sub" ansteuert.
If GetStdPrinterName = "" Then
MsgBox "Kein Drucker gefunden!"
Exit Sub
End If
P.S.neues Modul etc. genommen und dort alles reinkopiert inkl. Druckmenü.
Gruß Walter

Anzeige
AW: Leider noch nicht...
10.01.2005 12:40:05
Josef
Hallo Walter!
Leider keine weitere Idee;-((
Gruß Sepp
Anmerkung
10.01.2005 16:12:10
walter
Hallo Sepp,
kann man nicht abfragen, wenn die LPT1,2 und 3 Druckerstelle nicht belegt ist ?
Oder der Drucker, der angeschlossen ist, auch im Druckermenü hinterlegt ist.
Wenn nicht, dann gebe Wir HALT auf.
Gruß Walter
AW: Anmerkung
10.01.2005 16:23:20
Josef
Hallo Walter!
Danach hab' ich schon gesucht, bin aber (noch) nicht fündig geworden!
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige