Hallo,
ich bin gerade dabei ein par Makros für mein Excel Dokument zu schreiben.
Grundlegend habe ich schon einige Dinge ausgeführt die ich erst mal so zeigen will.
Beschreibung der Fakten:
Ich habe einen Verbraucher und zwei Messstellen.
In diesem Dokument messe ich den Stromfluss mit zwei verschiedenen Zählern. Danach gebe ich ihnen die Wertigkeit 1 bei einem Stromfluss und 0 bei keinem Fluss. Danach vergleiche ich die Ergebnisse miteinander um daraus zu schließen ob beide Zähler das gleiche messen.
Sinn: Bei einem Zähler weiß ich, dass Fehler auftreten können, der andere läuft 100% richtig.
Das heißt ich suche Stellen wo die Ergebnisse unterschiedlich sind, also Zähler1 -> 1 und Zähler2 -> 0.
Die Tabelle für den Vergleich habe ich schon angelegt und eine Auswertungszeile eingefügt, hier steht dann entweder "OK" oder "Fehler" drin.
Um mir nur die Fehler anzeigen zu lassen habe ich dieses Makro geschrieben:
Sub BeiOKzuklappen()
Dim kaestchen As String
Dim x As Long
Dim zelle
Do While x < 100
x = x + 1
zelle = "K" & x
kaestchen = Range(zelle).Value
If kaestchen = "OK" Then
Range(zelle).Select
Selection.EntireRow.Hidden = True
End If
Loop
Range("A1").Select
End Sub
Das funktioniert alles wunderbar.
Zudem wollte ich aber noch, dass es mir die Fehler meldet und diese danach in eine Textdatei protokolliert.
Dazu habe ich folgendes geschrieben:
Sub Fehlerfinden()
Dim kaestchen As String
Dim x As Long
Dim zelle
Dim Ausgabe As String
Dim datumeinheit
Dim datum
Dim zeiteinheit
Dim zeit
Dim verbrauchereinheit
Dim verbarucher
Do While x < 100
x = x + 1
zelle = "K" & x
kaestchen = Range(zelle).Value
datumeinheit = "E" & x
datum = Range(datumeinheit).Value
zeiteinheit = "F" & x
zeit = Range(zeiteinheit).Value
verbrauchereinheit = "L" & x
verbraucher = Range(verbrauchereinheit).Value
If kaestchen = "Fehler" Then
ausgabe1 = "Am " & datum
ausgabe2 = " ist um " & zeit
ausgabe3 = " Uhr beim Verbraucher " & verbraucher
ausgabe4 = " ein Fehler aufgetreten."
MsgBox ausgabe1 & ausgabe2 & ausgabe3 & ausgabe4
Dim schreiben
Open "H:\....\.....\....\........\Fehlerprotokoll.txt" For Append As #1
schreiben = datum & Chr(9) & zeit & Chr(9) & Chr(9) & verbraucher & Chr(9) 'Chr(9)=Tab
Print #1, schreiben
Close #1
End If
Loop
Range("A1").Select
End Sub
Das funktioniert auch ... nur eben alles auf der "simplen" Schiene.
Jetzt zu meiner eigentlichen Frage!:
1. Wie "automatisiere" ich diese Abläufe? Das heißt ich will, dass wenn ich Excel starte die Makros automatisch in einem gewissen Zeitintervall ausgeführt werden.
2. Gerade wenn dieses Zeitintervall eingeführt wurde, möchte ich natürlich nicht, dass bei jedem Abrufen des Fehlersuchmakros der gleiche fehler wieder in die Protokolldatei kommt. Das heißt es müsste irgendwie erkennen, dass der Fehler X schon eingetragen ist, also keine Warnmeldung und kein Protkoll entsteht.
Das wären erst mal die wichtigsten Fragen. Schonmal vielen Dank an jeden, der sich die Mühe macht das überhaupt durch zu lesen!
Danke
Gruß, henrik
Ps: Code einbinden Ging nicht ... Fehler im Browser!
|