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