Hello, everyone!
I've just written a hefty piece of vba code and while it works like a charm it keeps crashing for no known by me reason. Since this is important to me and I am a complete newbie to vba I would like to ask for your help solving this problem.
The macro itself is basically a huge If/then/else cycle that checks what's the value in a cell and fills other cells, based on the value.
Since the code itself is more than 10000 characters long, I will write the last subroutine in the following post. There's a commented section I've left in on purpose, just in case.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Intersect(Target, Range("D14")) Is Nothing Then
Call References
End If
If Not Intersect(Target, Range("D16")) Is Nothing Then
Call Multiclass
Call References
End If
If Not Intersect(Target, Range("J11")) Is Nothing Then
If Range("J11").Value > Range("J14").Value Then
Range("D16").Value = Range("D16").Value + 1
Call Multiclass
Call References
End If
End If
Application.EnableEvents = True
End Sub
Private Sub References()
Dim LevelRef As Range
Dim ClassRef As Range
Dim NextXP As Range
Dim SkillPoints As Range
Dim Hit As Range
Dim Parry As Range
Dim Dodge As Range
Dim Initiative As Range
Dim Damage As Range
Dim APR As Range
Dim Fort As Range
Dim Will As Range
Dim Ref As Range
Dim Title As Range
If Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B4").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C4")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 53 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B5").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C5")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 44 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B6").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C6")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 75 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B7").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C7")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 97 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B8").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C8")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 119 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B9").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C9")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 141 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B10").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C10")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 163 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B11").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C11")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 229 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B12").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C12")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 295 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B13").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C13")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 185 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B14").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C14")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 207 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B15").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C15")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 229 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B16").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C16")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 251 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B17").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C17")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 273 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B18").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C18")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 295 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B19").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C19")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 317 + LevelRef.Value)
'ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B20").Value Then
'LevelRef = Worksheets("Hidden Data Sheet").Range("C20")
'ClassRef = Worksheets("Hidden Data Sheet").Range("A" & 3 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B21").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C21")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 339 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B22").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C22")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 361 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B23").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C23")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 383 + LevelRef.Value)
ElseIf Range("D14").Value = Worksheets("Hidden Data Sheet").Range("B24").Value Then
Set LevelRef = Worksheets("Hidden Data Sheet").Range("C24")
Set ClassRef = Worksheets("Class Library XP Table").Range("A" & 22 + LevelRef.Value)
End If
Set NextXP = ClassRef.OffSet(1, 1)
Set Title = ClassRef.OffSet(0, 2)
Set SkillPoints = ClassRef.OffSet(0, 3)
Set APR = ClassRef.OffSet(0, 4)
Set Fort = ClassRef.OffSet(0, 5)
Set Ref = ClassRef.OffSet(0, 6)
Set Will = ClassRef.OffSet(0, 7)
Set Hit = ClassRef.OffSet(0, 8)
Set Parry = ClassRef.OffSet(0, 9)
Set Dodge = ClassRef.OffSet(0, 10)
Set Initiative = ClassRef.OffSet(0, 11)
Set Damage = ClassRef.OffSet(0, 12)
Range("J14").Value = NextXP.Value
Range("B19").Value = Hit.Value
Range("C19").Value = Parry.Value
Range("D19").Value = Dodge.Value
Range("E19").Value = Initiative.Value
Range("F19").Value = Damage.Value
Range("G19").Value = APR.Value
Range("H19").Value = Fort.Value
Range("I19").Value = Will.Value
Range("J19").Value = Ref.Value
Range("D15").Value = Title.Value
Range("D16").Value = LevelRef.Value
Worksheets("Skills").Range("K17").Value = Worksheets("Skills").Range("K17").Value + SkillPoints.Value
End Sub
Bookmarks