Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Fehler Funktion
#21
Oft meldet sich ein TE nicht mehr. Warum soll man nicht trotzdem schreiben dürfen?
Antworten Top
#22
Hab nix dagegen gesagt Smile Aber ansonsten geht es ja mit den Hinweisen nicht nur um uns 3 sondern um den TE und vielleicht auch die Allgemeinheit.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#23
(03.11.2022, 09:56)schauan schrieb: erl gibt aber nur was <> 0 aus, wenn auch Zeilennummern im Code sind, da seh ich im Sub keine Sad

Da hatter nun schon so eine große Brille… ;)
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top
#24
(03.11.2022, 19:40)schauan schrieb: ...
Aber eine kleine Korrektur sei auch mir erlaubt. Ich teilte meine Erfahrungen  21
...
Hallo,
Es geht nicht um Druckfehler,  sondern um das korrekte Rechtsverständnis (ok, und um die Fähigkeit, es umzusetzen).
Mein Logger wird völlig unbeanstandet (Revision, Audit) in verschiedenen Unternehmen in mehreren Ländern, darunter auch Deutschland, eingesetzt.
Weiter viel Spaß,
Bernd
Antworten Top
#25
Hallöchen,

@EarlFred

tatsächlich. Die 1 hab ich gar nicht für voll genommen. Macht der Gewohnheit.
Ich nehm' 10er Schritte, u.a. wenn man mal Code einfügen will, und hatte diese Erwartungshaltung. 22

@Sulprobil

also, jedem Arbeitnehmer kann ich nur empfehlen, sich in seinem Unternehmen über die "Auslegung" der Rechtslage zu informieren.

Wenn ein Arbeitgeber mit gut 120 Standorten weltweit und über 660000 Beschäftigten, darunter nicht wenige Rechtsanwälte, Betriebsräte, Systemausschüsse usw. Dir sagt, Du sollst das nicht, machst Du es auch nicht.
OK, der oberste Chef war es ganz sicher nicht, Confused ) Maßgeblich ist letztendlich der standörtlich zuständige Systemausschuss, dem man in so einem Unternehmen die Entwicklung zur Freigabe vorstellen muss. Die Standorte haben da auch ihre Direktiven von weiter oben, tauschen sich aus und stimmen sich ab ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#26
(28.10.2022, 09:01)EarlFred schrieb: Eine schnelle Fingerübung als Basis:

Code:
Option Explicit

Sub test()
On Error GoTo errExit

Dim x As Long
1 x = 1 / 0

Aufräumen:
Exit Sub

errExit:
Call ErrLog(Ex:=Err, Procedure:="Modul1.Test", ErrLine:=Erl)
Resume Aufräumen
End Sub



Private Function ErrLog(ByRef Ex As ErrObject, ByVal Procedure As String, Optional ErrLine As Long = -1)
 
Dim sErrText As String
sErrText = ThisWorkbook.Name & vbLf & _
            "Fehler in Prozedur: '" & Procedure & "'" & vbLf & _
            "Fehlerzeile: " & IIf(ErrLine > -1, ErrLine, "unbekannt") & vbLf & _
            "Fehlernummer: " & Ex.Number & vbLf & _
            "Fehlerbeschreibung: " & Ex.Description

Dim sDatnam As String: sDatnam = ThisWorkbook.Path & "\" & Format(Now, "YYYY-MM-DD hh.nn.ss") & "_ErrLog.txt"

Dim lngFileNr As Long: lngFileNr = FreeFile
Open sDatnam For Output As #lngFileNr
Print #lngFileNr, sErrText;
Close #lngFileNr

ErrLog = (Err = 0)
End Function

Dass Fehler, die nicht entstehen, die besten sind, muss ich sicher nicht betonen. ;)

Hallo zusammen,
sorry für die längere Abwesenheit, konnte mich die letzte Zeit leider nicht darum kümmern, zu eurer DSGVO Thematik, diskutiert sie gerne, mich stört das nicht und vielleicht kann man da noch was draus lernenSmile

Zu dem eigentlichen Thema, ich hab mir die Tips und /Tools mal angesehen und einiges davon erschlägt mich grade etwas, da ich da nicht so wirklich verstehe was da wann, wo und wie genau gemacht wird. 
@EarlFred lösung gefällt mir da im MOment für meinen wissensstand am besten, da hab ich im Moment nur noch die Frage zu ob man das "Global" also für das ganze Projekt oder zumindest immer für ein Modul einbauen kann oder muss das immer in jede Sub , bzw. würde ich die
Function am besten in ein eigenes Modul packen und dann die einzelnen Subs um den Verweis dazu erweitern?Für jede Sub einzeln?

Danke
Antworten Top
#27
Hallöchen,

die Zeilennummern und den Aufruf der Fehlerfunktion musst Du in die Sub's einbauen, wo Du was analysieren willst.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#28
(23.11.2022, 05:42)Mila schrieb: [...]Frage zu ob man das "Global" also für das ganze Projekt oder zumindest immer für ein Modul einbauen kann oder muss das immer in jede Sub , bzw. würde ich die
Function am besten in ein eigenes Modul packen und dann die einzelnen Subs um den Verweis dazu erweitern?Für jede Sub einzeln?
Die Function ErrLog gehört in EIN Modul der Mappe. Wenn du ein größeres Projekt mit mehreren Klassen/Modulen hast, ist es ratsam, solche allgemeinen Funktionen in einem Modul zu sammeln. Um dann auf diese Function von anderen Modulen aus zugreifen zu können, musst du das Schlüsselwort Private entfernen, sonst ist die Function außerhalb des Moduls unbekannt, also:

Private Function ErrLog(ByRef Ex As ErrObject, ByVal Procedure As String, Optional ErrLine As Long = -1)

Folgendes musst du dann in all deinen anderen Prozeduren (Subs, Functions) einbauen:
- Zeilennummern in allen Codezeilen, die etwas tun. 
- die Zeile On Error GoTo errExit am Anfang jeder Prozedur
- den Block am Ende der Prozedur (anstelle Modul1.Test muss da jeweils Modul.Prozedurname stehen)
Code:
Aufräumen:
Exit Sub 'oder Function

errExit:
Call ErrLog(Ex:=Err, Procedure:="Modul1.Test", ErrLine:=Erl)
Resume Aufräumen
End Sub 'oder Function
in der Zeile 
Call ErrLog(Ex:=Err, Procedure:="Modul1.Test", ErrLine:=Erl)
gehört bei modulübergreifenden Aufrufen noch der Modulname vor den Prozedurnamen, also Modulname.ErrLog (der ist innerhalb des gleichen Projekts ja auch immer gleich, muss also nur einmal angepasst werden)

 Also ja, etwas Handarbeit ist angesagt. Auf der anderen Seite: Wenn du Dir den Coderumpf als Muster ablegst, kannst du ihn immer als Basis für neuen Prozeduren nehmen.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipediadie Tafeln oder aktion-deutschland-hilft.de
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste