ich hab mal ne Frage und zwar hab ich mir ne Abfrage gebastelt welche eingescannte Zahlen mit Soll-Werten Vergleicht und wenn ein Teil dieser Zahl nicht passt wird mir das ganze in einer MSG-Box ausgegeben nach dem Schema
Fehler in Zahl: x=1-8...
...........................Soll.......Ist.........Fehlername
Fehlerbezeichnung1..........1..........1..............-
Fehlerbezeichnung2..........1..........1..............-
Fehlerbezeichnung3..........1..........2...........Fehler3
Fehlerbezeichnung4..........1..........1..............-
Fehlerbezeichnung5..........1..........1..............-
Dim varLL, Fehler, Fehler0, Fehler1, Fehler2, Fehler3, Fehler4 As String, wb As Workbook, i As Integer
Dim a, b, c, d, e, f, g, h, r, j, z, varFF As String
'------------------------In der Aktiven Arbeitsmappe den Sollwert holen und dann ihn mit dem Scannerwert vergleichen (12-Stellen von Rechts)---------------------------------
With ActiveWorkbook
varLL = .Sheets("Eingabe").Range("L4")
For i = 1 To 8
If Right(Controls("TextBox" & i + 8), 12) varLL Then
Fehler = Fehler & " - " & i
'-----------Würde auch Funktionieren mit Farbe, aber nicht notwendig wird noch geprüft If : Controls("TextBox" & i + 8).Text i & varLL Then Fehler = Fehler & " - " & i---
End If
Next
'--------------------------------------------------------Wenn kein Fehler auftritt, dann Werte in Tabelle Schreiben und OK geben---------------------------------------------
If Fehler = "" Then
For i = 1 To 8
.Worksheets("EINGABE").Range("N" & i + 3) = Controls("TextBox" & i + 8).Text
Next
MsgBox "Kein Fehler!"
End
Else
'------------------------Sollte mind. einer der Werte nicht übereinstimmen werden die Werte in die Tabelle geschrieben und dann die Fehlersuche Prozedur gestartet!----------
For i = 1 To 8
.Worksheets("EINGABE").Range("N" & i + 3) = Controls("TextBox" & i + 8).Text
Next
'----------Fehler zurücksetzen da sonst nach dem Ersten fehler der Wert nie leer ist und so immer die Fehler MSG-Box angezeigt wird und der Fehler im Speicher bleibt--------
For z = 1 To 8
Fehler0 = ""
Fehler1 = ""
Fehler2 = ""
Fehler3 = ""
Fehler4 = ""
With ActiveWorkbook
'--------------------------------ISTWERT - BEFINDET SICH IN N4-11 (Wurde durch vorherige Schritte eingefügt) also 8 WERTE die immer 13 Stellen haben!------------------------
varFF = .Sheets("Eingabe").Range("N" & z + 3)
a = Mid(varFF, 1, 1)
b = Mid(varFF, 2, 6)
c = Mid(varFF, 8, 2)
d = Mid(varFF, 10, 2)
e = Mid(varFF, 12, 2)
'----------------------------------------------------------------SOLLWERT - FESTE POSITION! ---------------------------------------------------------------------------------
varLL = .Sheets("Eingabe").Range("L4")
f = Mid(varLL, 1, 6)
g = Mid(varLL, 7, 2)
h = Mid(varLL, 9, 2)
r = Mid(varLL, 11, 2)
j = .Sheets("Eingabe").Range("M" & z + 3)
End With
'------------------------------------------------------Abfragen der Übereinstimmung der einzelnen Teile der aufgesplitteten Werte--------------------------------------------
If j a Then
Fehler0 = "Fehler0"
End If
If b f Then
Fehler1 = "Fehler1"
End If
If c g Then
Fehler2 = "Fehler2"
End If
If d h Then
Fehler3 = "Fehler3"
End If
If e r Then
Fehler4 = "Fehler4"
End If
'--------------------------------------------------------------------Ausgabe in MSG-Box----------------------------------------------------------------------------------------
If Fehler0 = "" And Fehler1 = "" And Fehler2 = "" And Fehler3 = "" And Fehler4 = "" Then
MsgBox "Alles Richtig, Freigabe!" & vbLf & vbLf _
& vbTab & vbTab & "Soll" & vbTab & vbTab & "Ist" & vbTab & vbTab & "Fehler" & vbLf _
& "Fehler0: " & vbTab & vbTab & f & vbTab & vbTab & b & vbTab & vbTab & " -" & vbLf _
& "Fehler1: " & vbTab & vbTab & g & vbTab & vbTab & c & vbTab & vbTab & " -" & vbLf _
& "Fehler2: " & vbTab & vbTab & h & vbTab & vbTab & d & vbTab & vbTab & " -" & vbLf _
& "Fehler3: " & vbTab & z & vbTab & vbTab & a & vbTab & vbTab & " -" & vbLf _
& "Fehler4: " & vbTab & vbTab & r & vbTab & vbTab & e & vbTab & vbTab & " -" & vbLf
Else
MsgBox "Fehler in " & "Eintrag: " & z & vbLf _
& vbTab & vbTab & "Soll" & vbTab & vbTab & "Ist" & vbTab & vbTab & "Fehler" & vbLf _
& "Fehler0: " & vbTab & vbTab & f & vbTab & vbTab & b & vbTab & vbTab & Fehler1 & vbLf _
& "Fehler1: " & vbTab & vbTab & g & vbTab & vbTab & c & vbTab & vbTab & Fehler2 & vbLf _
& "Fehler2: " & vbTab & vbTab & h & vbTab & vbTab & d & vbTab & vbTab & Fehler3 & vbLf _
& "Fehler3: " & vbTab & z & vbTab & vbTab & a & vbTab & vbTab & Fehler0 & vbLf _
& "Fehler4: " & vbTab & vbTab & r & vbTab & vbTab & e & vbTab & vbTab & Fehler4 & vbLf
End If
Next z