Option
Explicit
Private
Type MinMax
Min
As
Single
Max
As
Single
End
Type
Public
Sub
Test()
Dim
vntFilename
As
Variant
vntFilename = Application.GetOpenFilename(
"Textdatei (*.txt),*.txt"
, Title:=
"Messdatei auswerten"
)
If
VarType(vntFilename) = vbBoolean
Then
Exit
Sub
Call
Workbooks.OpenText( _
Filename:=vntFilename, _
ConsecutiveDelimiter:=
True
, _
Semicolon:=
True
)
Dim
rngData
As
Excel.Range
Dim
rngMass
As
Excel.Range
Dim
rngSpeed
As
Excel.Range
Dim
udtMass
As
MinMax
Dim
udtSpeed
As
MinMax
Dim
nOK
As
Long
Dim
i
As
Long
With
ActiveWorkbook.Worksheets(1)
udtMass.Min = .Range(
"B3"
).Value + .Range(
"B4"
).Value
udtMass.Max = .Range(
"B3"
).Value + .Range(
"B5"
).Value
udtSpeed.Min = .Range(
"B7"
).Value + .Range(
"B8"
).Value
udtSpeed.Max = .Range(
"B7"
).Value + .Range(
"B9"
).Value
Set
rngData = .Range(
"A14"
, .Cells.SpecialCells(XlCellType.xlCellTypeLastCell))
End
With
For
i = 1
To
rngData.Rows.Count
Set
rngMass = rngData.Cells(i, 1)
Set
rngSpeed = rngData.Cells(i, 2)
If
(udtMass.Min <= rngMass.Value
And
rngMass.Value <= udtMass.Max
Or
rngMass.Value =
""
) _
And
(udtSpeed.Min <= rngSpeed.Value
And
rngSpeed.Value <= udtSpeed.Max
Or
rngSpeed.Value =
""
) _
Then
nOK = nOK + 1
End
If
Next
Dim
strMessage
As
String
strMessage =
"Anzahl Messungen: "
& rngData.Rows.Count & vbNewLine _
&
"OK: "
& nOK & vbNewLine _
&
"Nicht ok: "
& rngData.Rows.Count - nOK
Call
MsgBox(strMessage, vbInformation)
End
Sub