Sirenetta,
Zack's suggestion would certainly be an option. I think you'd need XL2002 to make it work. To implement, I'd use {Ctrl}+{A} to select all cells, then {Ctrl}+{1} (or Format | Cells...), go to the protection tab and unlock all of them, then select columns B, D and F and lock them. Then turn on WS protection checking all boxes except Select Locked Cells. When I tried this, it worked just fine at skipping over the desired columns, but the {Home} key and {Ctrl}+{PgUp}/{PgDown} didn't work like they normally do, which can be a little irritating.
As for a VB-based solution. Right-click on the tab of the worksheet in question. You'll see a popup menu. Pick View Code off that menu and you'll be taken to the VB Editor. Then just paste the code I'll list below into the WS's code module. While this keeps {Home} and {Ctrl}+{PgUp}/{PgDown} working nicely, it does bring user's Security Settings into play. If their security is set to high this won't even run. If it's set to medium they'll get a dialog box asking to Enable Macros each time the WB is opened. (You can overcome that by digitally signing the WB, but that's an additional kettle of fish, so to speak.) Note: I left in a line of code showing another way to test, but the 2nd way may be a little more intuitive to read. So, if you want to try, here is the code:
================================================
<font face=Courier New><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> Worksheet_SelectionChange(<SPAN style="color:#00007F">ByVal</SPAN> Target <SPAN style="color:#00007F">As</SPAN> Range)
<SPAN style="color:#00007F">Static</SPAN> rngStatTarget <SPAN style="color:#00007F">As</SPAN> Range
<SPAN style="color:#00007F">Dim</SPAN> intColOffset <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Integer</SPAN>
<SPAN style="color:#00007F">If</SPAN> Target.Count > 1 <SPAN style="color:#00007F">Then</SPAN> <SPAN style="color:#00007F">Exit</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
<SPAN style="color:#007F00">' If (Not CBool(Target.Column Mod 2)) And (Target.Column < 7) Then</SPAN>
<SPAN style="color:#00007F">If</SPAN> <SPAN style="color:#00007F">Not</SPAN> Intersect(Target, Union([B:B], [D:D], [F:F])) <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
Application.EnableEvents = <SPAN style="color:#00007F">False</SPAN>
<SPAN style="color:#00007F">If</SPAN> <SPAN style="color:#00007F">Not</SPAN> rngStatTarget <SPAN style="color:#00007F">Is</SPAN> <SPAN style="color:#00007F">Nothing</SPAN> <SPAN style="color:#00007F">Then</SPAN>
<SPAN style="color:#00007F">If</SPAN> rngStatTarget.Column < Target.Column <SPAN style="color:#00007F">Then</SPAN>
intColOffset = 1
<SPAN style="color:#00007F">ElseIf</SPAN> Target.Column <> 1 <SPAN style="color:#00007F">Then</SPAN>
intColOffset = -1
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Else</SPAN>
intColOffset = 1
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
Target.Offset(, intColOffset).Select
Application.EnableEvents = <SPAN style="color:#00007F">True</SPAN>
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">If</SPAN>
<SPAN style="color:#00007F">Set</SPAN> rngStatTarget = ActiveCell
<SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN>
</FONT>
HTH