Option
Explicit
Const
SCORE_1_START = 36
Const
SCORE_2_START = 61
Const
SCORE_3_START = 86
Const
SCORE_4_START = 111
Const
SCORE_5_START = 136
Const
SCORE_6_START = 161
Const
SCORE_7_START = 186
Const
SCORE_8_START = 211
Const
SCORE_9_START = 236
Const
SCORE_10_START = 261
Const
SCORE_11_START = 286
Const
SCORE_12_START = 311
Const
SCORE_13_START = 336
Const
SCORE_14_START = 361
Const
SCORE_15_START = 386
Const
SCORE_16_START = 411
Const
SCORE_17_START = 436
Const
SCORE_18_START = 461
Const
SCORE_19_START = 486
Const
SCORE_20_START = 511
Const
SCORE_21_START = 536
Const
SCORE_1_END = 59
Const
SCORE_2_END = 84
Const
SCORE_3_END = 109
Const
SCORE_4_END = 134
Const
SCORE_5_END = 159
Const
SCORE_6_END = 184
Const
SCORE_7_END = 209
Const
SCORE_8_END = 234
Const
SCORE_9_END = 259
Const
SCORE_10_END = 284
Const
SCORE_11_END = 309
Const
SCORE_12_END = 334
Const
SCORE_13_END = 359
Const
SCORE_14_END = 384
Const
SCORE_15_END = 409
Const
SCORE_16_END = 434
Const
SCORE_17_END = 459
Const
SCORE_18_END = 484
Const
SCORE_19_END = 509
Const
SCORE_20_END = 534
Const
SCORE_21_END = 559
Const
SCORE_2_SCORE = 63
Const
SCORE_3_SCORE = 88
Const
SCORE_4_SCORE = 113
Const
SCORE_5_SCORE = 138
Const
SCORE_6_SCORE = 163
Const
SCORE_7_SCORE = 188
Const
SCORE_8_SCORE = 213
Const
SCORE_9_SCORE = 238
Const
SCORE_10_SCORE = 263
Const
SCORE_11_SCORE = 288
Const
SCORE_12_SCORE = 313
Const
SCORE_13_SCORE = 338
Const
SCORE_14_SCORE = 363
Const
SCORE_15_SCORE = 388
Const
SCORE_16_SCORE = 413
Const
SCORE_17_SCORE = 438
Const
SCORE_18_SCORE = 463
Const
SCORE_19_SCORE = 488
Const
SCORE_20_SCORE = 513
Const
SCORE_21_SCORE = 538
Public
Sub
read()
Dim
filename
As
String
Dim
NewBook
As
Workbook
filename = ThisWorkbook.path &
"\n01_data.csv"
If
Dir(filename) =
""
Then
MsgBox
"CSV file was not found."
, vbExclamation
Exit
Sub
End
If
Set
NewBook = Workbooks.Add
ThisWorkbook.Sheets(Array(
"2"
,
"CSV"
)).Copy Before:=NewBook.Sheets(1)
Application.DisplayAlerts =
False
Do
While
NewBook.Sheets.Count > 2
NewBook.Sheets(3).Delete
Loop
Application.DisplayAlerts =
True
NewBook.Sheets(
"CSV"
).UsedRange.Clear
Call
read_csv(filename, NewBook.Sheets(
"CSV"
))
NewBook.Sheets(
"2"
).
Select
NewBook.Activate
Call
Kill(filename)
ThisWorkbook.Saved =
True
ThisWorkbook.Close
End
Sub
Private
Sub
read_csv(filename
As
String
, xlSt
As
Worksheet)
Dim
str
As
String
Dim
x()
As
String
Dim
f
As
Integer
Dim
i
As
Long
Dim
j
As
Integer
Dim
s
As
Integer
Dim
t
As
Integer
f = FreeFile
Open filename
For
Input
As
#f
i = 1
Do
Until
EOF(f)
Line Input #f, str
If
i = 1
Then
ReDim
x(4)
s = 1
For
j = 0
To
4
If
Mid(str, s, 1) <>
""
""
Then
t = InStr(s, str,
","
)
If
t = 0
Then
x(j) = Mid(str, s)
s = 0
Else
x(j) = Mid(str, s, t - s)
s = t + 1
End
If
Else
s = s + 1
t = InStr(s, str,
""
""
)
Do
While
t <> 0
If
Mid(str, t + 1, 1) <>
""
""
Then
Exit
Do
End
If
t = InStr(t + 2, str,
""
""
)
Loop
If
t = 0
Then
t = InStr(s, str,
","
)
End
If
If
t = 0
Then
x(j) = Mid(str, s)
s = 0
Else
x(j) = Mid(str, s, t - s)
x(j) = Replace(x(j),
""
""
""
,
""
""
)
s = InStr(t + 1, str,
","
)
If
s <> 0
Then
s = s + 1
End
If
End
If
End
If
If
s = 0
Then
Exit
For
End
If
Next
j
Else
x = Split(str,
","
)
End
If
If
UBound(x) > 1
Then
Select
Case
x(0)
Case
"Round"
If
i < SCORE_1_START
Then
i = SCORE_1_START
ElseIf
i > SCORE_1_START
And
i < SCORE_2_START
Then
i = SCORE_2_START
ElseIf
i > SCORE_2_START
And
i < SCORE_3_START
Then
i = SCORE_3_START
ElseIf
i > SCORE_3_START
And
i < SCORE_4_START
Then
i = SCORE_4_START
ElseIf
i > SCORE_4_START
And
i < SCORE_5_START
Then
i = SCORE_5_START
ElseIf
i > SCORE_5_START
And
i < SCORE_6_START
Then
i = SCORE_6_START
ElseIf
i > SCORE_6_START
And
i < SCORE_7_START
Then
i = SCORE_7_START
ElseIf
i > SCORE_7_START
And
i < SCORE_8_START
Then
i = SCORE_8_START
ElseIf
i > SCORE_8_START
And
i < SCORE_9_START
Then
i = SCORE_9_START
ElseIf
i > SCORE_9_START
And
i < SCORE_10_START
Then
i = SCORE_10_START
ElseIf
i > SCORE_10_START
And
i < SCORE_11_START
Then
i = SCORE_11_START
ElseIf
i > SCORE_11_START
And
i < SCORE_12_START
Then
i = SCORE_12_START
ElseIf
i > SCORE_12_START
And
i < SCORE_13_START
Then
i = SCORE_13_START
ElseIf
i > SCORE_13_START
And
i < SCORE_14_START
Then
i = SCORE_14_START
ElseIf
i > SCORE_14_START
And
i < SCORE_15_START
Then
i = SCORE_15_START
ElseIf
i > SCORE_15_START
And
i < SCORE_16_START
Then
i = SCORE_16_START
ElseIf
i > SCORE_16_START
And
i < SCORE_17_START
Then
i = SCORE_17_START
ElseIf
i > SCORE_17_START
And
i < SCORE_18_START
Then
i = SCORE_18_START
ElseIf
i > SCORE_18_START
And
i < SCORE_19_START
Then
i = SCORE_19_START
ElseIf
i > SCORE_19_START
And
i < SCORE_20_START
Then
i = SCORE_20_START
ElseIf
i > SCORE_20_START
And
i < SCORE_21_START
Then
i = SCORE_21_START
End
If
Case
"Darts"
If
i > SCORE_1_START + 1
And
i < SCORE_1_END
Then
i = SCORE_1_END
ElseIf
i > SCORE_1_END
And
i < SCORE_2_END
Then
i = SCORE_2_END
ElseIf
i > SCORE_2_END
And
i < SCORE_3_END
Then
i = SCORE_3_END
ElseIf
i > SCORE_3_END
And
i < SCORE_4_END
Then
i = SCORE_4_END
ElseIf
i > SCORE_4_END
And
i < SCORE_5_END
Then
i = SCORE_5_END
ElseIf
i > SCORE_5_END
And
i < SCORE_6_END
Then
i = SCORE_6_END
ElseIf
i > SCORE_6_END
And
i < SCORE_7_END
Then
i = SCORE_7_END
ElseIf
i > SCORE_7_END
And
i < SCORE_8_END
Then
i = SCORE_8_END
ElseIf
i > SCORE_8_END
And
i < SCORE_9_END
Then
i = SCORE_9_END
ElseIf
i > SCORE_9_END
And
i < SCORE_10_END
Then
i = SCORE_10_END
ElseIf
i > SCORE_10_END
And
i < SCORE_11_END
Then
i = SCORE_11_END
ElseIf
i > SCORE_11_END
And
i < SCORE_12_END
Then
i = SCORE_12_END
ElseIf
i > SCORE_12_END
And
i < SCORE_13_END
Then
i = SCORE_13_END
ElseIf
i > SCORE_13_END
And
i < SCORE_14_END
Then
i = SCORE_14_END
ElseIf
i > SCORE_14_END
And
i < SCORE_15_END
Then
i = SCORE_15_END
ElseIf
i > SCORE_15_END
And
i < SCORE_16_END
Then
i = SCORE_16_END
ElseIf
i > SCORE_16_END
And
i < SCORE_17_END
Then
i = SCORE_17_END
ElseIf
i > SCORE_17_END
And
i < SCORE_18_END
Then
i = SCORE_18_END
ElseIf
i > SCORE_18_END
And
i < SCORE_19_END
Then
i = SCORE_19_END
ElseIf
i > SCORE_19_END
And
i < SCORE_20_END
Then
i = SCORE_20_END
ElseIf
i > SCORE_20_END
And
i < SCORE_21_END
Then
i = SCORE_21_END
End
If
End
Select
If
i = SCORE_1_END
And
x(0) <>
"Darts"
Then
i = SCORE_2_SCORE
ElseIf
i = SCORE_2_END
And
x(0) <>
"Darts"
Then
i = SCORE_3_SCORE
ElseIf
i = SCORE_3_END
And
x(0) <>
"Darts"
Then
i = SCORE_4_SCORE
ElseIf
i = SCORE_4_END
And
x(0) <>
"Darts"
Then
i = SCORE_5_SCORE
ElseIf
i = SCORE_5_END
And
x(0) <>
"Darts"
Then
i = SCORE_6_SCORE
ElseIf
i = SCORE_6_END
And
x(0) <>
"Darts"
Then
i = SCORE_7_SCORE
ElseIf
i = SCORE_7_END
And
x(0) <>
"Darts"
Then
i = SCORE_8_SCORE
ElseIf
i = SCORE_8_END
And
x(0) <>
"Darts"
Then
i = SCORE_9_SCORE
ElseIf
i = SCORE_9_END
And
x(0) <>
"Darts"
Then
i = SCORE_10_SCORE
ElseIf
i = SCORE_10_END
And
x(0) <>
"Darts"
Then
i = SCORE_11_SCORE
ElseIf
i = SCORE_11_END
And
x(0) <>
"Darts"
Then
i = SCORE_12_SCORE
ElseIf
i = SCORE_12_END
And
x(0) <>
"Darts"
Then
i = SCORE_13_SCORE
ElseIf
i = SCORE_13_END
And
x(0) <>
"Darts"
Then
i = SCORE_14_SCORE
ElseIf
i = SCORE_14_END
And
x(0) <>
"Darts"
Then
i = SCORE_15_SCORE
ElseIf
i = SCORE_15_END
And
x(0) <>
"Darts"
Then
i = SCORE_16_SCORE
ElseIf
i = SCORE_16_END
And
x(0) <>
"Darts"
Then
i = SCORE_17_SCORE
ElseIf
i = SCORE_17_END
And
x(0) <>
"Darts"
Then
i = SCORE_18_SCORE
ElseIf
i = SCORE_18_END
And
x(0) <>
"Darts"
Then
i = SCORE_19_SCORE
ElseIf
i = SCORE_19_END
And
x(0) <>
"Darts"
Then
i = SCORE_20_SCORE
ElseIf
i = SCORE_20_END
And
x(0) <>
"Darts"
Then
i = SCORE_21_SCORE
End
If
End
If
For
j = 0
To
4
If
UBound(x) < j
Then
Exit
For
End
If
xlSt.Range(xlSt.Cells(i, j + 1), xlSt.Cells(i, j + 1)).Value = x(j)
Next
j
i = i + 1
Loop
Close #f
End
Sub