Thema Datum  Von Nutzer Rating
Antwort
Rot PrintOut startet Prozedur neu anstatt zu drucken
05.05.2015 11:24:08 Dom
NotSolved
06.05.2015 20:22:54 MK_Excel
NotSolved
07.05.2015 10:28:28 Dom
NotSolved
07.05.2015 11:28:39 Gast99959
Solved

Ansicht des Beitrags:
Von:
Dom
Datum:
05.05.2015 11:24:08
Views:
1205
Rating: Antwort:
  Ja
Thema:
PrintOut startet Prozedur neu anstatt zu drucken

Hallo zusammen

Ich hab da ein Problem mit einer BeforePrint-Prozedur. Ich konnte den Fehler auf eine Zeile eingrenzen, verstehe aber nicht was das Problem ist. Der gesamte Code rechnet eigentlich durch bis er zum vorletzten Befehl "Printout" kommt. Die Zeile(n) oberhalb werden noch ausgeführt. "PrintOut" jedoch nicht, dafür springt man wieder zum Anfang und der Code wird von neuem Ausgeführt. Dabei wird jedoch auch wieder ein Befehl (Application.Dialogs(xlDialogSaveAs).Show) nicht ausgeführt und man hängt in einer Endlosschlaufe fest.

Weiter ist es so, dass bei den Kollegen das Excel abstürzt bei der "Quit"-Anweisung. Bei mir jedoch nicht, obwohl wir alle mit den gleichen Servern, Officeversionen, etc. arbeiten.

Ich habe hier mal den Code (ziemlich gekürzt auf die entsprechenden Fehler):

Option Explicit
Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim clipboard As MSForms.DataObject
    Dim fPath As String
    Dim fName As String
    Dim fName2 As String
    Dim fDatei As String
    Dim i As Long
    Set ws = Worksheets("Lohnblatt")
    Set wb = ThisWorkbook
    Set clipboard = New MSForms.DataObject
       
    fPath = "\\Pfad für die Kopie\"
    fName = Format(Date, "YYYY-MM-DD") & "-" & ActiveWorkbook.name
    fName2 = ActiveWorkbook.name
    fDatei = fPath & fName
    
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    If ActiveSheet.name = "Lohnblatt" Then
        'Drucken abbrechen
        Cancel = True
        End If
    If wb.Saved = True Then GoTo Save1 Else GoTo Not_Save1
    
    'Wenn das Dokument bereits gespeichert ist, wird diese Bedingung übersprungen
Not_Save1:
    With ws
        If wb.Saved = False Then _
            'Messagebox Meldung in zwei Sprachen
        If wb.Saved = False Then Application.Dialogs(xlDialogSaveAs).Show (fName2), xlOpenXMLWorkbookMacroEnabled
        If wb.Saved = False Then GoTo Not_Save2 Else GoTo Save1
    End With
        
Not_Save2:
    With ws
             'Messagebox Meldung in zwei Sprachen
        If wb.Saved = False Then GoTo Not_Save1 Else GoTo Save1
    End With
        
Save1:
    'Ein paar Spalten werden mit einem For/Next Befehl ausgeblendet.
    'Danach werden einige Daten in ein anderes Tabellenblatt geschrieben

Save2:
    With ws
    'Hinweis, dass eine Kopie gespeichert werden muss
            'Messagebox Meldung in zwei Sprachen
           
        clipboard.SetText fPath
        clipboard.PutInClipboard

'Dieser Befehl wir beim (fehlerhaften) zweiten Durchlauf übersprungen
        Application.Dialogs(xlDialogSaveAs).Show (fName), xlOpenXMLWorkbookMacroEnabled
'hier geht es dann weiter
        If wb.Saved = False Then _
            If ws.Range("B5") = "Deutsch" _
              'Messagebox Meldung in zwei Sprachen
'Da das "speichern unter"-Fenster nicht ausgeführt wird hängt man hier dann fest.
        If wb.Saved = False Then GoTo Save2 Else GoTo Save3
     
    End With

Save3:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    'Hinweis, dass das Dokument nun geschlossen wird. (Soll verhindern, dass in der Kopie weitergearbeitet wird)
      'Messagebox Meldung in zwei Sprachen
'alles oberhalb wird ausgeführt. Der nachstehende Befehl wird nicht ausgeführt und man Beginnt wieder zu oberst
    ws.PrintOut
    MsgBox "printout wird ausgeführt"

'Bei mir stürzt das Programm nicht ab. Bei den Kollegen jedoch schon. Eine Idee weshalb?
    'Application.Quit
'Das war die alternative, die auch bei mir zum Absturz führte
    'wb.Close

End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot PrintOut startet Prozedur neu anstatt zu drucken
05.05.2015 11:24:08 Dom
NotSolved
06.05.2015 20:22:54 MK_Excel
NotSolved
07.05.2015 10:28:28 Dom
NotSolved
07.05.2015 11:28:39 Gast99959
Solved