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

Makro sofort abbrechen

Makro sofort abbrechen
21.04.2007 07:46:00
Markus
Hallo,
das folgende Makro druckt etwa 800 Stammblätter aus.
Bei einem Druckfehler (Papierstau o.Ä.) möchte ich das Makro sofort mit der Escape-Taste abbrechen.
Weiss da jemand Rat!
Danke
Markus

Sub Maschinen_Stammblatt_drucken()
Dim rng As Range, c As Range
Dim statuscounter As Integer
With Worksheets("Seriendruck")
Set rng = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
End With
For Each c In rng
With Worksheets("Stammblatt_Maschinen")
.Range("AE5") = c.Value
.PrintOut
End With
'    warten, um Drucküberlauf zu vermeiden
Application.Wait Now + TimeSerial(0, 0, 1)
Next c
End Sub


3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro sofort abbrechen
21.04.2007 09:38:00
Nepumuk
Hallo Markus,
versuch es mal so:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Declare Sub Sleep Lib "kernel32.dll" ( _
    ByVal dwMilliseconds As Long)

Public Sub Maschinen_Stammblatt_drucken()
    Dim rng As Range, c As Range
    Dim statuscounter As Integer
    
    Application.EnableCancelKey = xlErrorHandler
    On Error GoTo err_exit
    
    With Worksheets("Seriendruck")
        Set rng = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp))
    End With
    
    For Each c In rng
        With Worksheets("Stammblatt_Maschinen")
            .Range("AE5") = c.Value
            .PrintOut
        End With
        
        ' warten, um Drucküberlauf zu vermeiden
        Sleep 1000
    Next c
    
    Exit Sub
    
    err_exit:
    Select Case Err.Number
        Case 18
            MsgBox "Drucken abgebrochen", vbInformation, "Information"
        Case Else
            MsgBox "Fehler " & CStr(Err.Number) & vbLf & vbLf & _
                Err.Description, vbCritical, "Fehlermeldung"
    End Select
End Sub

Dein Wait habe ich durch Sleep ersetzt, der belastet das System nicht. Die Wait - Methode lastet nämlich den Prozessor zu 100% aus.
Gruß
Nepumuk

Anzeige
AW: Makro sofort abbrechen
21.04.2007 09:52:22
Uwe
Hi Markus,
mein VBA ist auch noch bescheiden und ich weiss nicht ob es klappt, aber versuch einfach mal vor dem Next c das hier einzufügen:
Application.EnableEvents
Viel Glück
Uwe (:o)

zu
21.04.2007 21:07:25
zu
zu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige