Sub LoopRange_All()
'OL = Outside loop (alltså att stega vilken cell som är referens)
'IL = Inside loop (alltså loopa över alla vinklar, när den kollar)
Dim rRow_OL As Range
Dim rRng As Range
Dim Comp As Integer
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
' ' Exclude certain sheets
If ws.Name = "Input" Then
MsgBox "Kommer inte köra " & ws.Name
Else
' MsgBox "För detta sheet kommer den köraa nu" & ws.Name
'
MsgBox "Hej nu är jag på " & ws.Name
'Ange vilket intervall som ska kollas, alltså kolumner och rader för Start vinkel och **** vinkel
Set rRng = ws.Range("T6:U23")
' Rensa "Is overlapped fälten"
ws.Range("V6:W23").Clear
'Stega referens cell
For Each rCol_OL In rRng.Columns
For Each rRow_OL In rCol_OL.Rows
Debug.Print rRow_OL.Address, rRow_OL.Value, rRow_OL.Column
If rRow_OL.Value = "N/A" Then
Debug.Print "Detta är hålet på sig självt"
Else
'Stega i kontrollintervaller (bara rader i första kolumnen)
' For Each rCol_IL In rRng.Columns
For Each rRow_IL In rCol_OL.Rows
' Kolla om vänster eller höger kolumn
If rRow_OL.Column = 20 Then
Comp = 1
ElseIf rRow_OL.Column = 21 Then
Comp = -1
End If
Debug.Print rRow_IL.Address, rRow_IL.Value, rRow_IL.Offset(0, Comp).Value
' Kolla om det är siffror i cellen eller ett N/A (eftersom det är hålet själv)
If rRow_IL.Value = "N/A" Then
Debug.Print "Det är N/A här"
Else
'Få den att undivka att kolla MEDIAN om den är på sin "egen" rad
If rRow_OL.Value = rRow_IL.Value Or rRow_IL.Offset(0, Comp).Value = rRow_OL.Value Then
Debug.Print "Den försöker kolla median mot sig själv.", rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value
Else
'Kolla om den är i första kolumnen
If Comp = 1 Then
' Kolla om specialfall
If rRow_IL.Value < rRow_IL.Offset(0, Comp).Value Then
' Om inte specialfall
If rRow_OL.Value = WorksheetFunction.Median(rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value) Then
Debug.Print "Ja, den är innanför en annan sektor", rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value
' Nåt smart kommando för att markera vilken cirkel det är som överlappar.
rRow_OL.Offset(0, 2).Value = rRow_OL.Offset(0, 2).Value & rRow_IL.Offset(0, -19).Value
Else
Debug.Print "Nej"
End If
' Om specialfall (går över pi till -pi hoppet)
Else
Debug.Print test
If rRow_OL.Value = WorksheetFunction.Median(rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value) Then
Debug.Print "Nej"
Else
Debug.Print "Ja, den är innanför en annan sektor", rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value
' Nåt smart kommando för att markera vilken cirkel det är som överlappar.
rRow_OL.Offset(0, 2).Value = rRow_OL.Offset(0, 2).Value & rRow_IL.Offset(0, -19).Value
End If
End If
' Om den är i andra kolumnen
ElseIf Comp = -1 Then
' Kolla om specialfall
If rRow_IL.Value > rRow_IL.Offset(0, Comp).Value Then
' Om inte specialfall
If rRow_OL.Value = WorksheetFunction.Median(rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value) Then
Debug.Print "Ja, den är innanför en annan sektor", rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value
' Nåt smart kommando för att markera vilken cirkel det är som överlappar.
rRow_OL.Offset(0, 2).Value = rRow_OL.Offset(0, 2).Value & rRow_IL.Offset(0, -20).Value
Else
Debug.Print "Nej"
End If
' ' Om specialfall (går över pi till -pi hoppet)
Else
If rRow_OL.Value = WorksheetFunction.Median(rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value) Then
Debug.Print "Nej"
Else
Debug.Print "Ja, den är innanför en annan sektor", rRow_IL.Value, rRow_IL.Offset(0, Comp).Value, rRow_OL.Value
' Nåt smart kommando för att markera vilken cirkel det är som överlappar.
rRow_OL.Offset(0, 2).Value = rRow_OL.Offset(0, 2).Value & rRow_IL.Offset(0, -20).Value
End If
End If
End If
End If
End If
' MsgBox "Börjar nästa rad, rad" & rRow_IL.Address
Next rRow_IL
' Next rCol_IL
End If
' Nu utanför den inre loopen (alltså klar med kontrollen av den aktuella referenscellen
' Else
' MsgBox "Kommer inte köra" & ws.Name
' End If
' Ebnd
Next rRow_OL
Next rCol_OL
End If
Next ws
End Sub
Sry for the swedish notes and comments in the code.
Bookmarks