Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro sofort abbrechen

Forumthread: 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


Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige