Klaus, your program still has a serious bug, at least on my desktop machine. The AppClose command in the following sub causes a crash regardless of exit method:
Sub frmMain_Close
AppClose
End Sub
Sub frmMain_Close is called from Sub btnExit_Click. If you replace the call to frmMain_Close with AppClose in that Sub, the problem disappears (and, of course, the Sub frmMain_Close Sub becomes unnecessary).
Notice also that if you end the program by clicking btnExit, the following code is executed:
SaveInit
Setup.SetupSave
but this code is bypassed if you terminate by clicking "X" in the upper-righthand corner. One simple fix would be to put the two save commands in the frmMain_Close Sub, with AppClose being the last line in the btnExit Sub.
As far as functionality goes, the two things I miss are
(1) filtering on pairs - that is, cells with only two candidates. Simple Sudoku does this by changing the background color of the selected cell. I'm not sure if it is worth trying to implement in your program, it is only a minor convenience. A more important function is
(2) Color tagging (or what ever you call it). There is an advanced solving method that involves the user coloring certain cells in different colors. Once in a while it is a big help in cracking a very difficult puzzle.
Neither functionality is a deal breaker, however. Your program is quite good just the way it is.
Are you pursuing the solver engine? I found some VB code that solves Sudoku puzzles. Be glad to send it to you if you could use it.
-Dave