Hi

I have made up a sheet containing a grid of 4x5 hexagons to re-create the 1980's gameshow "Blockbusters".

For those of you young enough(and lucky enough!) not to remember it, it was a quiz for two teams (1 person v 2 people) answering questions to cross a grid.

I would like to detect when a team has won, ie crossed the grid.

I have put the grid into two arrays, one for crossing left to right, and one for top to bottom.

I started writing code using IF statements:

As you can see, this has got very messy very quickly, and this is just for the basic right to left crossing.Code:`Sub MyAlgArray()`

Dim A() As Variant

A = Sheet1.Range("i12:m15")

'Line across top

If A(1, 1) = 1 And A(1, 2) = 1 Or A(1, 1) = 1 And A(2, 2) = 1 Then

If A(1, 3) = 1 And A(2, 4) = 1 And A(2, 5) Then MsgBox "Equal"

If A(1, 3) = 1 And A(1, 4) = 1 Or A(1, 3) = 1 And A(2, 4) = 1 Then

If A(1, 5) = 1 Then MsgBox "Equal"

End If

End If

'2nd line

If A(2, 1) = 1 And A(2, 2) = 1 Or A(2, 1) = 1 And A(3, 2) = 1 Then

If A(2, 3) = 1 And A(2, 4) = 1 And A(1, 5) Then MsgBox "Equal"

If A(2, 3) = 1 And A(3, 4) = 1 And A(3, 5) Then MsgBox "Equal"

If A(2, 3) = 1 And A(2, 4) = 1 Or A(2, 3) = 1 And A(3, 4) = 1 Then

If A(2, 5) = 1 Then MsgBox "Equal"

End If

End If

'3rd line

If A(3, 1) = 1 And A(3, 2) = 1 Or A(3, 1) = 1 And A(4, 2) = 1 Then

If A(3, 3) = 1 And A(3, 4) = 1 Or A(3, 3) = 1 And A(4, 4) = 1 Then

If A(3, 5) = 1 Then MsgBox "Equal"

End If

End If

'4th line

If A(4, 1) = 1 And A(4, 2) = 1 Then

If A(4, 2) = 1 And A(3, 3) = 1 Or A(4, 2) = 1 And A(4, 3) = 1 Then

If A(4, 4) = 1 And A(3, 5) = 1 Or A(4, 4) = 1 And A(4, 5) = 1 Then MsgBox "Equal"

End If

End If

End Sub

Any ideas how this can be done more efficiently?

Best regards

Paul Ked