AW: Application.Quit Fehler 13 Typen unverträglich
28.07.2004 14:32:11
Mike
Posten hatte wohl doch nicht geklappt. Aber jetzt ...
Public
Sub prc0402_LastRow(Tabelle, StartCell As String)
'Call prc00214_TraceCalls("prc0402_LastRow")
'MW#*******************************************************************************
'MW# Gibt die letzte Zeile eines Datenblocks (Spalte A) zurück
'MW#
'MW# Version : 0.0963 Stand : 20040713
'MW# : TOP
'MW#
'MW# Historie:
'MW# V 0.0966 neuer Befehl um letzte Zeile zu ermitteln: [A65536].End(xlUp).Row
'MW# V 0.0963 - Sonderbehandlung für strTab_FehlerMM2: _
'MW# mit der xlDown-Methode tritt ein Fehler auf, wenn nur 1 Zeile
'MW# in Tabelle ist. Daher Umstellung auf UsedRange-Methode.
'MW# Die bringt allerdings Überlauf-Fehler (6), wenn die Tabelle >
'MW# 1 Zeile enthält. Daher wird dieser Fehler ignoriert!
'MW# - Normalbehandlung aller anderen Tabellen:
'MW# Falls hier bei xlDown ein Fehler auftritt, wird davon ausgegangen,
'MW# dass keine Datensätze gefunden wurden.
'MW#
'MW# Aufruf: prc0402_LastRow (Tabelle, "A1")
'MW#
'MW# Bei Fehler: Wird keine "letzte Zeile" gefunden, wird das ganze Programm
'MW# abgebrochen.
'MW#*******************************************************************************
Worksheets(Tabelle).Activate
Range(StartCell).Select '# Springe in Spalte x
'Stop
'On Error Resume Next
If Tabelle = strTab_FehlerMM2 Then 'MW%0961# Diese Tabelle hat keine Überschrift (--> prc0503)
intLastRow = ActiveSheet.UsedRange.Rows.Count
If intLastRow = 0 Then
'# Keine Fehler im Berichtszeitraum
End If
Else
'intLastRow = [A65536].End(xlUp).Row
intLastRow = Range(Left(StartCell, 1) & "65536").End(xlUp).Row
If intLastRow = 1 Then
intReturnCode = (intReturnCode Or &H1000)
intFehler = intFehler + 1
intFehlerNummer = Err.Number 'MW# zum Debuggen
If bolAutomaticRun = True Then
Call prc0340_LogText(Now & " ReturnCode = " & Format(Hex(intReturnCode), "0000") _
& "; FEHLER: Keine Datensätze gefunden in Tabelle " & Tabelle & " (prc0402_LastRow).")
Call prc0340_LogText(Now & _
" Das Programm wird abgebrochen -- (Tipp: Überprüfen Sie Einstell-Daten)")
Call prc0340_LogText(Now & " ReturnCode = " & Format(Hex(intReturnCode), "0000") & "; FEHLER: Der Bericht konnte nicht erstellt werden. Es traten " & intFehler & " Fehler auf.")
Close #2 'MW# Log-File schließen
Call prc0504_EMail_Senden
'Stop
Application.DisplayAlerts = False
'ActiveWorkbook.Close ' falls .Quit nicht funktioniert
Application.Quit 'MW# EXCEL schließen
Else
'MsgBox ("Fehler # " & str(Err.Number) & " wurde ausgelöst von " _
& Err.Source & Chr(13) & Err.Description & Chr(13) _
& "===> FEHLER in prc0402_LastRow mit Tabelle " & Tabelle & ", StartZelle " & StartCell & Chr(13) _
& "===> ABBRUCH wegen fehlender Datensätze. (Tipp: SQL überprüfen)")
MsgBox "FEHLER: Keine Datensätze gefunden in Tabelle " & Tabelle & _
", StartZelle " & StartCell & "(prc0402_LastRow)." & Chr(13) _
& "===> ABBRUCH wegen fehlender Datensätze. (Tipp: Daten / SQL überprüfen)"
'bolProgramm_abbrechen = True
End 'MW# Beendet Programm-Ausführung
End If 'MW# Ende bolAutomaticRun
End If 'MW# Ende xlDown
End If 'MW# Ende Tabelle = strTab_FehlerMM2
End
Sub ' prc0402_LastRow