Wabbit I got Excel VBA Programming for Dummies and it has some decent (IMHO) chapters in there on data types and sub/functions so I will be using all that in the next version.
The code is starting to look neater too! With less subs being called, the code maintenance and debugging should be getting easier? I notice you still have the reading the data from the pages in each sub routine; as mentioned before, I'd take all of them out and one function which reads the worksheet data into variables.
As for the data types, you'll find just about all of that information in the help files too! The Dummies book might explain it better in the first instance, but now that you know what the differences are, you can just refer to the help functions for the info. When you're done, donate the book to your local library!
The use of sub vs function is debatable, but as we discussed I prefer to use functions because they return a value. Combined with "on error" you can trap errors at each function level; if the function returns false you can stop the app and find out why. Continuously calling sub routines just ends up hurting! (On error... is a poor-man implementation of the much more powerful concept available in programming languages like C/C++ etc, which is Try...Catch where you can Throw specific errors and have your code deal with these errors on a type-by-type, case-by-case basis. Happy days )
I know it's a personal preference thing; but if you're going to have a Select Case with only one case, then its the same as an If...Then statement (without an else). I have never speed tested the two so don't know if one is faster than the other, but I think in readability If...Then is a little easier on the eyes when there is not a list of possbilities. Also, with Boolean logic (true and false) you wouldn't need to specify the case in an If...Then e.g.
If test Then something
instead of
If test=true Then something
and for the false cases:
If Not test Then something
is the same as
If test=false Then something
As I said, it's a preference thing.
Did you eventually get a matrix of all the routines and function calls? I started, but then got really pi55ed off with how many places one section of code can visit! so stopped working on it! There are a lot of efficiencies to be made to optimise the running of the code.
Hope this helps.
wabbit