Excel Workbook wird immer mit Fehler beendet

  • Excel

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von maexchen1999.

    Wenn ich über meinen "Beenden"-Button gehe, kommt er zuerst zum "Before Close" und danach in das Change-Event. Wenn ich über "X" beende, kommt gar kein Haltepunkt, sondern sofort die Fehlermeldung bezüglich des Range-Objektes.

    Visual Basic-Quellcode

    1. Private Sub Abrechnungsmonat_Change()
    2. Dim adr As Range
    3. Dim Amonat, SZ
    4. Dim Anz As Integer
    5. 'Application.EnableEvents = False
    6. 'If Not Worksheets("Abrechnung").Visible Then Exit Sub
    7. ThisWorkbook.Sheets("Abrechnung").Range("M6:P6").Value = "Jahressechstel vor Abr. " & [Abrechnungsmonat].Column(1)
    8. SZ = ThisWorkbook.Sheets("Abrechnung").Range("J12").Value
    9. Amonat = ThisWorkbook.Sheets("Abrechnung").Range("C5").Value 'Abrechnungsmonat
    10. Anz = Application.WorksheetFunction.CountIf(ThisWorkbook.Sheets("Jahressechstel").Range("C2:C13"), ">0") 'Eingetragene Monate
    11. 'MsgBox "Abrechnungsmonat: " & Amonat
    12. 'MsgBox "Monatsanzahl: " & Anz
    13. If Amonat - Anz > 1 Then
    14. x = MsgBox("Es wurde noch nicht für alle vergangenen Monate das Jahressechstel eingetragen!" & Chr(13) & _
    15. Chr(13) & "Die Abrechnung für den Monat " & Abrechnungsmonat.Column(1) & " ist daher noch nicht möglich!", vbOKOnly + vbInformation, "Fehlende Eingaben")
    16. [Abrechnungsmonat] = derzeit_Abrechnungsmonat
    17. GoTo Ende
    18. End If
    19. If Amonat - Anz = 1 Then
    20. Msechstel = Application.WorksheetFunction.Index(ThisWorkbook.Sheets("Jahressechstel").Range("C2:c13"), Amonat)
    21. If Msechstel = 0 Or IsNull([Msechstel]) Then
    22. x = MsgBox("Soll das Jahressechstel für den Monat " & Abrechnungsmonat.Column(1) & " eingetragen werden?", vbYesNo + vbQuestion, "Jahressechstel eintragen")
    23. If x = 6 Then
    24. ThisWorkbook.Sheets("Jahressechstel").Range("C2").Offset(Amonat - 1, 0) = ThisWorkbook.Sheets("Abrechnung").Range("E18").Value
    25. End If
    26. End If
    27. End If
    28. ThisWorkbook.Sheets("Abrechnung").Range("Q6").Value = CDbl(Format(Application.WorksheetFunction.Index(Worksheets("Jahressechstel").Range("C2:F13"), Amonat, 2), "##,##0.00 "))
    29. ThisWorkbook.Sheets("Abrechnung").Range("E12").Select
    30. Ende:
    31. End Sub


    Sorry, hab das jetzt erst mit dem "vb" überzogen ... :(

    maexchen1999 schrieb:

    Wenn ich über "X" beende, kommt gar kein Haltepunkt, sondern sofort die Fehlermeldung bezüglich des Range-Objektes.
    Wenn du am Anfang beider Eventroutinen einen Haltepunkt hast und keiner wird angefahren, dann kommt der Fehler auch nicht von diesem Code.

    Was hast du denn sonst noch an Events, die per VBA abgefangen werden?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Ich habe jetzt bei allen Events einen Haltepunkt gesetzt. Aber sowohl über "X" also auch über den "Beenden"-Button kam ich zu keinem Haltepunkt, sondern lediglich zur "üblichen Fehlermeldung wie schon beschrieben ("Select"-Problem).
    Da ich vermutet habe, dass es vielleicht auch an der Excel-Installation liegen könnte, habe ich es auf anderen Rechnern mit anderen Konfigurationen versucht - etwa auf dem Laptop von meinem Bruder (Windows XP mit Office 2007) oder im Büro (so wie bei mir Windows 7 mit Office 2010) - überall jedoch war es das selbe "Ergebnis" ....