Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1496to1500
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
Inhaltsverzeichnis

Unerklärliche Abstürze

Unerklärliche Abstürze
30.05.2016 23:41:26
Robert
Guten Abend zusammen,
nachdem ich letzte Woche durch das Forum einen super Tipp bekommen habe mein Makro entscheidend zu verbessern wende ich mich heute mit einem neuen Problem an euch.
Das Makro ist etwas umfangreicher geworden und ich muss daher leider unwesentliche Passagen heraus kürzen. Das Problem stellt sich wie folgt dar:
Das Makro läuft komplett durch und die letzte MessageBox wird angezeigt. Nun hat man die _ gespeicherte Ergebnisdatei vor sich, wenn ich die jetzt beende stürzt Excel ab, aber eben auch nicht immer. Manchmal klappen 10 Versuche hintereinander, manchmal klappen 5 nacheinander nicht. Ich habe auch das Gefühl, ich kann die Abstürze voraus sagen, weil das Makro dann länger durchläuft als gewöhnlich...merkwürdig. Vielleicht hat jemand einen Tipp! Ich habe schon alles ausprobiert /auskommentiert und komme nicht mehr weiter.

Sub NOW_Makro()
ThisWorkbook.Save
'---Gegen das Flackern-----------------------------------------------------------
Application.ScreenUpdating = False
'Application.EnableEvents = True
'---Zieldatei öffnen und kopieren------------------------------------------------
'---Quelle, aus der die Tabelle kopiert werden soll
datei_quelle = Application.GetOpenFilename("Excel-Dateien(*.xl*),*.xl*")
If datei_quelle = False Then Exit Sub
Set QWB = Workbooks.Open(Filename:=datei_quelle, ReadOnly:=True)
'---Inhalt in Ziel-Tabelle einfügen
QWB.Worksheets(1).Cells.copy Workbooks("Programm_VOC_NOW.xlsm").Worksheets(2).Cells(1, 1)
'---Quelldatei schließen
QWB.Close
'---NOW Tabelle expandieren um alle nicht gefundenen und angefügten Elemente mit einzubeziehen-- _
_
ActiveSheet.ListObjects(1).Resize Range("B3", Cells(i, 8))
'---Dateiname einfügen und speichern---------------------------------------------
dateiname = ThisWorkbook.Worksheets(1).Cells(1, 3)
'---Buttons löschen----------------------------------------------------------------------------- _
_
ThisWorkbook.Worksheets(1).Shapes.SelectAll
Selection.Delete
'Cells(1, 1).Select
'---Fertig - jetzt speichern!----------------------------------------------------
Application.DisplayAlerts = False
ThisWorkbook.Worksheets(2).Delete
'---Ohne Makros speichern und sind leere Zeilen gelöscht ja/nein mit in
ThisWorkbook.SaveAs Filename:=dateiname & " Analyse " & leerezeilen, FileFormat:= _
xlOpenXMLWorkbook
'---Warnungen wieder anschalten--------------------------------------------------
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
'---QS Projektnummer in Txt schreiben----------------------------------------------------------- _
_
_
On Error Resume Next
If Dir(path) = "" Then
Open path For Output As #1
Close #1
End If
Open path For Append As #1
Print #1, dateiname & " " & Format(Now, "dd.mm.yyyy") & " " & Format(Now, "hh:mm") & " " &  _
Environ("Username") & " " & version
Close #1
'---Finale Informationsausgabe---------------------------------------------------
MsgBox "Analyse erfolgreich beendet!" & vbNewLine & vbNewLine & _
"Importiert und gespeichert unter:" & vbNewLine & vbNewLine & _
" - " & dateiname & " Analyse " & leerezeilen & ".xlsx" & vbNewLine & vbNewLine & vbNewLine & _
"Statistik:" & vbNewLine & _
gefunden & " Übereinstimmungen" & vbNewLine & _
ueberschreitung & " Grenzwertüberschreitungen" & vbNewLine & _
nichtgefunden & " Nicht identifizierbare Elemente", vbInformation, version
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unerklärliche Abstürze
31.05.2016 00:44:55
Daniel
Hi
das einzige was mir im Code auffallen würde was zu gelegentlichen Abstürzen führen kann, ist dass du im Abschnitt "QS Projektnummer in Txt schreiben" mit der festen Filenummer #1 arbeitest und es könnte sein, dass diese schon anderweitig vergeben ist, wenn es zum Absturz kommt.
normalerweise holt man sich eine freie FileNummer mit FreeFile und arbeitet mit dieser.
https://msdn.microsoft.com/de-de/library/office/gg264526(v=office.15).aspx
auch würde ich in diesem Programmabschnitt auf das On Error Resume Next verzichten.
Es gibt in dem Codeabschnitt keinen Befehl, der im "normalbetrieb" einen Fehler verursachen könnte, daher ist dieser Befehl unnötig, zumal du ja keine vernünftige Fehlerbehandlung dazu aufgebaut hast.
solange man noch in der Test- und Erprobungsphase ist, sind solche pauchalen Fehlersprünge sogar kontraproduktiv, weil sie Programmierfehler verschleieren und es so erschweren, ein funktionierendes Programm zu entwickeln.
desweitern erscheint mir die "Finale Informationsausgabe" als eine Programmzeile sehr lang, aber das wäre ja ein permanenter Fehler, dh wenns läuft ist es gut.
Aber übersichtlicher wäre es vielleicht, wenn du den Meldungstext zunächst in einer Variablen erstellst, dann könntest du die Erstellung in mehreren Programmzeilen durchführen, was ggf etwas übersichtlicher ist.
ausserdem ist es so, dass in Excel-VBA man für eine neue Zeile in einer Msgbox den ASCII-Code 10 braucht, dh als Systemkonstante vbLF und nicht den Code 13 mit vbNewLine.
gruß Daniel
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige