Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Arbeitsschritte protokollieren

Arbeitsschritte protokollieren
21.01.2008 10:53:00
volker
Hallo Forum,
ich habe bereits ein wenig gestöbert und denke, dass dies noch nie gefragt wurde.
Aber belehrt mich gerne eines Besseren :-)
Mein Problem ist, dass ein sehr komplexes EXCEL-Makro von diversen Nutzern genutzt wird. Leider bin von Haus aus kein Programmierer, habe aber dennoch ein lauffähiges Programm hinbekommen. Nun zeigt sich, dass das Makro (Programm) manchmal aussteigt. Mir ist es danach auch mit intensiven Nachfragen kaum möglich, den Fehler zu reproduzieren. Deswegen ist meine Idee nun, dass ich jede Bewegung, jeden Klick, jede Eingabe in eine externe Datei schreiben lassen will.
Ist das mögich?
Meine Vermutung ist ja!
Gefunden habe ich bereits, wie ich den Benutzernamen und das Datum in die Datei bekomme.
Wie bekomme ich die einzelen Klicks, Eingaben, usw. in eine solche Datei?
Es sollte also drin stehen:
Benutzer, Datum (das bekomme ich hin!)
und dann:
klick auf button xyz
Eingabe von Text xyz in Celle (a,b)
Wahl von Optionbutton abc
usw.
Gibt es da eine (einfache) Lösung?
Danke,
volker

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsschritte protokollieren
21.01.2008 11:17:19
Renee
Hi Volker,
Was heisst: dass das Makro (Programm) manchmal aussteigt.
Wie? Mit einer Fehlermeldung? Mit welcher?
Was heisst eine einfache Methode zur protokollierung?
Schau dir mal die Methoden .Debug und .Assert an.
Oder bau dir einen EventLog procedure. Hier ein kleines Beispiel mit einer Userform1 und 2 comanndbuttons.

Option Explicit
Private blnAssert As Boolean
Private intNumber As Integer
Private bLogIsOpen As Boolean
Private Sub CommandButton1_Click()
EventLog ("CommandButton1_Click")
blnAssert = Not blnAssert
intNumber = IIf(intNumber  0, 0, 1)
CommandButton1.Caption = intNumber
End Sub
Private Sub CommandButton2_Click()
EventLog ("CommandButton2_Click")
Debug.Assert blnAssert
End Sub
Private Sub UserForm_Deactivate()
EventLog ("Form Deactivated")
If bLogIsOpen Then Close #1
End Sub
Private Sub UserForm_Initialize()
EventLog ("Form Initialize")
CommandButton1.Caption = intNumber
CommandButton2.Caption = "Assert Tester"
End Sub
Sub EventLog(tStep As String)
If Not (bLogIsOpen) Then
Open "EventLog" For Output Shared As #1
bLogIsOpen = True
End If
Write #1, "User:"; Application.UserName; " TimeStamp:"; Now(); " Event:"; tStep
End Sub


GreetZ Renée

Anzeige
AW: Arbeitsschritte protokollieren
21.01.2008 11:59:35
volker
Hei Renee,
vielen Dank für Deine Antwort!
Zu deinen Fragen:
- Was heisst: dass das Makro (Programm) manchmal aussteigt.
Es gibt ein kompilierungsfehler im verborgenen Modul. Da der Code passwortgeschützt ist (u.a. deswegen, da es in 98% der Fälle keine Probleme gibt), kann ich eben nicht direkt Debuggen, sondern muss den Fehler reproduzieren. Dies ist oft nicht wirklich möglich, da die Anwender nicht mehr wissen was sie denn gemacht haben.
- Wie? Mit einer Fehlermeldung? Mit welcher?
Mit verschiedenen, die ich ja auch verstehen würde käme ich direkt zum VBA-Code.
Nur hilft mir das nicht weiter, den Fehler grundsätzlich abzustellen. Dazu wäre es eben gut zu wissen, welche Fehlerabfangroutinen ich noch hinzufügen muss, damit es durchläuft. Denn beim besten Willen: man kann nicht als Programmierer alle Unsinnigkeiten der Anwender im Vorfeld erfassen :-(
- Was heisst eine einfache Methode zur protokollierung?
Im Prinzip das, was Du mir in dem geposteten Code zugeschickt hast, allerdings ist mir das noch zu kompliziert, da ich ja in jeder (Private) Sub einen entsprechenden Befehl einbauen müsste.
Geht das nicht direkt? EXCEL weiß doch was geklickt wurde. Ich will es nur sichtbar haben. Bei meinem Projekt wäre dein Vorschlag ein Einbauaufwand von mehreren Tagen :-(((
- Schau dir mal die Methoden .Debug und .Assert an.
Das werde ich mal tun! Danke für den Tip!
Danke auch für den Code, zudem aber leider oben Gesagtes gilt.
Viele Grüße,
Volker

Anzeige
AW: Arbeitsschritte protokollieren
21.01.2008 12:01:00
volker
Ich wollte nur sschreiben, dass die Frage noch offen ist.
Danke für weitere Mitdenke!
Volker

AW: Arbeitsschritte protokollieren
21.01.2008 13:37:10
Renee
Hi Volker,
Du gibst deinen Level mit Excel gut - VBA gut an und suchst nach etwas, das es nicht gibt, bzw. nicht geben kann!
1. Wenn Du nicht an den Code rankommst aber bereits weisst, dass er Fehler enthält, dann vergiss den Code, bzw. schmeiss in weg. Kein Code ist besser als Code mit Fehlern!
2. Wie willst Du einen 'Fehler abstellen' , wenn er sich in einem Code befindet, an den du nicht rankommst ?
3. Es gibt keine anderen oder nur noch aufwändigere, kompliziertere (Klassenmodule mit Eventhandlern) Möglichkeiten (es sei denn ich bin nicht auf dem Stand der Dinge), als die welche ich dir angegeben habe um Event's zu protokollieren.
GreetZ Renée

Anzeige
AW: Arbeitsschritte protokollieren
21.01.2008 14:14:00
volker
Hallo Rene,
vielen Dank für die Antwort und wir haben uns wohl falsch verstanden:
Ich komme sehr wohl an den Code, habe ihn ja programmiert.
Nur der Anwender soll nicht drankommen, damit er nichts kaputt macht (es gibt da Experten!). Deswegen ist er beim Anwensder Passwortgeschützt.
Nur reicht zur Fehlerbeseitigung eben oft nicht, dass mir einer sagt, als letztes habe ich dann diesen oder jenen Knopf gedrückt. Soweit kann ich natürlich den Fehler reproduzieren.
Meist liegt der Fehler aber in irgenwelchen Schritten davor: Der Anwender hatte bereits einen Abbruch, der ihm aber nicht als wichtig vorkam und ihn deswegen nicht gemeldet hat. Und es sind eben genau diese Abbrüche, die mich interessieren. Bzw. der Anwender hat etwas gelöscht, was er nicht hätte löschen dürfen (ich aber verssen habe zu sperren, dass es gelöscht werden kann).
Insofern reicht es wohl auch leider nicht, einfach in jeden möglichen Klick einen Output für die Protokolldatei zu machen, da auch normale EXCEL-Ereignisse das Programm stören können.
Gibt es denn keine interne Liste aller nacheinader ausgeführten Befehle, die EXCEL irgendwo ablegt?
Muss es doch, da ich ja den Rückgängig Button habe. Nun will ich auf diese Datei eben irgendwie zugriefen.
Vielleicht verlange ich zuviel.
Volker

Anzeige
AW: Arbeitsschritte protokollieren
21.01.2008 14:45:00
Renee
Hi Volker,
Gibt es denn keine interne Liste aller nacheinader ausgeführten Befehle, die EXCEL irgendwo ablegt?
Muss es doch, da ich ja den Rückgängig Button habe. Nun will ich auf diese Datei eben irgendwie zugriefen.

Nein eine solche Liste gibt es nicht!
Veränderungen die durch VBA verursacht werden, kann weder Excel noch du rückgängig machen, da diese nie in der Rollback-Liste auftauchen.
GreetZ Renée

AW: Arbeitsschritte protokollieren
21.01.2008 15:28:00
volker
OK,
vielen dank, Renee!
Hat mir dennoch sehr weitergeholfen.
Bin wieder einen großen Schritt schlauer :-)
Volker

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige