View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Keith Willshaw Keith Willshaw is offline
external usenet poster
 
Posts: 170
Default different places to put excel code?


"Ross" wrote in message
om...
hi there,

could someone tell me the difference between putting a sub in a
worksheet specific code module and a general module?

When I hope my spreadsheet, then do alt-f11, I see Sheet1 with a place
for code, as well as a Module1 that takes code. Sometimes I find that
if I am trying to call a procedure from within Sheet1 code, it won't
find it unless I put the called procedure in the Module1.

I know this must be very basic stuff for Excel. A brief explanation
would be appreciated!

Thanks
Ross


There are 5 type of location you can put your VBA Code

1) A worksheet (sheet1, sheet2 etc)

This location is where code should be placed that traps one of the
worksheet events (Activate, BeforeDoubleClick, BeforeRightClick etc)
or that traps events of an object owned by the worksheet such as
a ComboBox or RadioButton

2) The ThisWorkbook object

This location is where code should be placed that traps one of the
workbook events (SheetActivate, SheetBeforeDoubleClick,
SheetBeforeRightClick etc)

3) UserForms - Userforms are what you use to define your user interface
and any code specific to that interface such as all the TextBox , ComboBox,
ListBox events shoud go here. You may also add code routines
that are called by that form only

4) Modules - This is the place to put most of your general purpose
program procedures. Basically the rule should be that if you want
call a routine from other places in the Project the procedure
should go into a module.

As your programs get more complex you'll find it valuable to
have some standard modules that you can load into each new
project

5) Class Modules

This is where you put code when you want to declare and
use new object types. Like Excel Objects your types
can have properties and methods , which are defined
in the classmodule and then instantiated and used from
a userform or code module

I suspect this is a little beyond your scope at present

Keith