Hallo, habe ein Problem, arbeite Wochenlang an einem Programm, was W-LAN Pings auswertet, habe da schon ne menge fertig und geht soweit, nun soll jedoch die Benutzerfreundlichkeit gefördert werden, da hagt es.
Habe erst mit einem Range und FormularLocal einen =ZÄHLENWENN Befehl eingetragen, dass war aber zu unflexible.
Nun die kleine Schleife, die ausgerechnet nicht geht:
Zur Erklärung, er soll die (E)rror oder Ping-(I)nformationen Zählen.
Zusätzlich einen Gesamtwert und ob es 50 Errors in Folge sind (dann sind die Fahrzeuge und Krane abgeschaltet).
Der Wert: "E:" und "I:" stehen in Zeile C des Aktiven Sheets.
Die Prozentrechnung, wie hoch unsere Fehlerquote liegt, funktioniert überhaupt nicht, daher ausdokumentiert.
Die Benutzeroberfläche wird drübergelegt, wenn das Monsterprogramm endlich mal läuft, wird langsam zu groß und kompliziert.
Danke schonmal.
Habe erst mit einem Range und FormularLocal einen =ZÄHLENWENN Befehl eingetragen, dass war aber zu unflexible.
Nun die kleine Schleife, die ausgerechnet nicht geht:
Habe im Debugger geschaut, warum er mir nur 0 Werte ausgibt, er überspringt die "Then" Befehle. weis aber grade auch nicht, wie ich das verhindern kann.' Hier entsteht eine Schleife:
Dim i As Long
Dim e As Long
Dim s As Integer
Dim z As Long
Dim v As Integer
Dim g As Long
' Festlegung der größen und bereiche
With ActiveSheet
i = 0 'Erfolgreiche Pings
e = 0 'Errors
s = 0 'Errorfolgenzähler
z = 1 'Zeile
v = 0 'Vollständige Errorfolgen
g = 0 'Gesamtinformationen
' Werte zuordnen, zu beginn alle auf 0, nur Zeile ist 1
Set Bereich = Range("C1:C65535") 'Es wird im Gesamten Bereich "C" gesucht
Do While Cells(z, 1).Value <> "" 'Die Schleife läuft, bis ein leeres Feld getroffen wird
If Cells(z, 1).Value = "E" Then 'Wenn ein "E:" in der Zelle auftaucht, wird eine Aktion aufgerufen
e = e + 1 'Es werden die Errors um einen hoch gezählt
g = g + 1 'Es werden die Gesamtinfos um einen hoch gezählt
s = s + 1 'Es werden die Serien um einen hoch gezählt
If s = 50 Then 'Wenn die Serie von 50 Errors in Folge erreicht wird, wird eine Aktion ausgeführt
v = v + 1 'Es werden die Vollendeten Error Serien um einen hoch gezählt
s = 0 'Die Serienzählung wird wieder auf "0" zurück gesetzt
Else 'Sollte oben der Fall nicht eintreffen
End If 'Die If anweisung der Serie wird beendet
Else 'Sollte oben der Fall nicht zutreffen
If Cells(z, 1).Value = "I" Then 'Wenn in der Zelle ein "I:" steht, wird eine aktion ausgeführt
i = i + 1 'Es werden die Informationen um einen hoch gezählt
g = g + 1 'Es werden die Gesamtinfos um einen hoch gezählt
s = 0 'Die Errorserienzählung wird auf "0" zurück gesetzt, da die Serie unterbrochen wurde
Else 'Sollte oben der Fall nicht eintreffen
End If 'Die If anweisung der Serie wird beendet
z = z + 1 'Zählt eine Zeile weiter runter
End If 'Die gesamte If anweisung wird beendet
Loop ' Ende der Schleife
' Ab hier kommen die Ziele, wo er die Variablen Speichern soll
' Range("F1").Select 'Feld "F1" wird ausgewählt
' F1 = e 'Trägt in "F1" die Errors ein
Range("F1") = e
' Range("F2").Select 'Feld "F2" wird ausgewählt
' F2 = v 'Trägt in "F2" die Errorserien ein
Range("F2") = v
' Range("F3").Select 'Feld "F3" wird ausgewählt
' F3 = i 'Trägt in "F3" die Informationen (Ping zu) ein
Range("F3") = i
' Range("F4").Select 'Feld "F4" wird ausgewählt
' F4 = g 'Trägt in "F4" die Gesamt Informationen ein
Range("F4") = g
' Range("F5").Select 'Feld "F5" wird ausgewählt
' F5 = e / g * 100 'Rechnet den Prozentsatz an Fehlinformationen aus und schreibt diesen in "F5"
' Range("F5") = e / g * 100
End With
' Agenda: i = "I:"; e = "E:"; s = 50 "E:" in Serie; v = Vollendete Serie; g = Gesamterbereich; z = Zeile
' Die Schleife zählt in Spalte C alle "E:", "I:", "E: in 50er folgen" und die "Gesamtinformationen".
Zur Erklärung, er soll die (E)rror oder Ping-(I)nformationen Zählen.
Zusätzlich einen Gesamtwert und ob es 50 Errors in Folge sind (dann sind die Fahrzeuge und Krane abgeschaltet).
Der Wert: "E:" und "I:" stehen in Zeile C des Aktiven Sheets.
Die Prozentrechnung, wie hoch unsere Fehlerquote liegt, funktioniert überhaupt nicht, daher ausdokumentiert.
Die Benutzeroberfläche wird drübergelegt, wenn das Monsterprogramm endlich mal läuft, wird langsam zu groß und kompliziert.
Danke schonmal.