Hallo Experten,
ich sitzte sehr lange vor einem Problem und kann es nicht lösen. Ich bin völlig unerfahren in VBA und bräuchte bitte Eure Hilfe.
Es geht um folgendes Makro:
Die Auswertung soll nun die letzten 3 Spalten V-X (siehe Anhang), in denen die Größe der Fehler in den grünhinterlegten Spalten drinstehen, berücksichtigen. Immer wenn die Größe der Fehler kleiner 2 ist (z.B. 0,8 und 1) und nicht in H-M gefunden werden, dann soll dies nicht als Schlupf gewertet werden und somit auch nicht den Gesamtentscheid beeinflussen (z.B. wären das die Fehler R5 und P7).
Als Erstes habe ich am Anfang ein neues array deklariert und es "arrR" genannt, wegen den rothinterlegten Spalten V-X. Danach habe ich in Abschnitt '***Einlesen Zeile dieses Array entsprechend hinzugefügt.
Ich bin mir allerdings nicht sicher, ob ich für diese Erweiterung ein neues Array überhaupt brauche?
Als Nächstes habe ich in dem Abschnitt '***Auswerten "Anzahl Schlupt" vieles ausprobiert und nichts klappt (u.a. habe ich es mit einer Elseif-Schleife erfolglos probiert).
Die Excel Tabelle zusammen mit dem Makro schicke ich Euch als Anhang.
Ich hoffe Ihr könnt mir weiterhelfen.
Danke!
Gruß salva
ich sitzte sehr lange vor einem Problem und kann es nicht lösen. Ich bin völlig unerfahren in VBA und bräuchte bitte Eure Hilfe.
Es geht um folgendes Makro:
Visual Basic-Quellcode
- Public Sub Tabelle1Auswertung()
- Dim arrY As Variant, arrG As Variant, arrR As Variant
- Dim r As Long, y As Integer, g As Integer, reslt As Integer
- '***ScreenUpdating
- Application.ScreenUpdating = False
- Application.Calculation = xlCalculationManual
- '***Auswertung durchführen
- With Worksheets("Tabelle1")
- For r = 3 To 9
- '***Einlesen Zeile
- arrY = .Cells(r, "H").Resize(1, 6)
- arrG = .Cells(r, "P").Resize(1, 3)
- arrR = .Cells(r, "V").Resize(1, 3)
- '***Auswerten "Anzahl Fehler" Yellow
- reslt = 0
- For y = 1 To UBound(arrY, 2) Step 2
- If arrY(1, y) > 0 Or arrY(1, y + 1) > 0 Then reslt = reslt + 1
- Next y
- .Cells(r, "G") = reslt
- '***Auswerten "Anzahl Fehler" Green
- reslt = 0
- For g = 1 To UBound(arrG, 2)
- If arrG(1, g) > 0 Then reslt = reslt + 1
- Next g
- .Cells(r, "O") = reslt
- '***Auswerten "Anzahl richtig"
- reslt = 0
- For g = 1 To UBound(arrG, 2)
- If arrG(1, g) <> 0 And Not IsEmpty(arrG(1, g)) Then
- For y = 1 To UBound(arrY, 2) Step 2
- If arrG(1, g) >= arrY(1, y) And arrG(1, g) <= arrY(1, y + 1) Then
- reslt = reslt + 1
- arrY(1, y) = Empty: arrY(1, y + 1) = Empty
- arrG(1, g) = Empty
- Exit For
- End If
- Next y
- End If
- Next g
- .Cells(r, "D") = IIf(reslt > 0, reslt, "")
- '***Auswerten "Anzahl Schlupf"
- reslt = 0
- For g = 1 To UBound(arrG, 2)
- If arrG(1, g) <> 0 And Not IsEmpty(arrG(1, g)) Then
- reslt = reslt + 1
- arrG(1, g) = Empty
- End If
- Next g
- .Cells(r, "E") = IIf(reslt > 0, reslt, "")
- '***Auswerten "Anzahl Pseudo"
- reslt = 0
- For y = 1 To UBound(arrY, 2) Step 2
- If arrY(1, y) <> 0 And Not IsEmpty(arrY(1, y)) And _
- arrY(1, y + 1) <> 0 And Not IsEmpty(arrY(1, y + 1)) Then
- reslt = reslt + 1
- arrY(1, y) = Empty: arrY(1, y + 1) = Empty
- End If
- Next y
- .Cells(r, "F") = IIf(reslt > 0, reslt, "")
- '***Auswerten "Gesamtentscheid"
- .Cells(r, "B") = IIf(.Cells(r, "E") + .Cells(r, "F") > 0, 0, 1)
- Next r
- End With
- '***ScreenUpdating
- Application.ScreenUpdating = True
- Application.Calculation = xlCalculationAutomatic
- End Sub
Die Auswertung soll nun die letzten 3 Spalten V-X (siehe Anhang), in denen die Größe der Fehler in den grünhinterlegten Spalten drinstehen, berücksichtigen. Immer wenn die Größe der Fehler kleiner 2 ist (z.B. 0,8 und 1) und nicht in H-M gefunden werden, dann soll dies nicht als Schlupf gewertet werden und somit auch nicht den Gesamtentscheid beeinflussen (z.B. wären das die Fehler R5 und P7).
Als Erstes habe ich am Anfang ein neues array deklariert und es "arrR" genannt, wegen den rothinterlegten Spalten V-X. Danach habe ich in Abschnitt '***Einlesen Zeile dieses Array entsprechend hinzugefügt.
Ich bin mir allerdings nicht sicher, ob ich für diese Erweiterung ein neues Array überhaupt brauche?
Als Nächstes habe ich in dem Abschnitt '***Auswerten "Anzahl Schlupt" vieles ausprobiert und nichts klappt (u.a. habe ich es mit einer Elseif-Schleife erfolglos probiert).
Die Excel Tabelle zusammen mit dem Makro schicke ich Euch als Anhang.
Ich hoffe Ihr könnt mir weiterhelfen.
Danke!
Gruß salva