Hi Paul,

Thanks for your help. I think I now understand how it works. After I
sent you the file I tried what is suggested in below link one more
time and it works great. It is basically the same thing that you told
me to do with a little bit of change.

Here is the link for anybody interested:
http://www.tek-tips.com/faqs.cfm?fid=4090

So I changed the sheet's (name) in the properties window to "shtBonus"
and then used it like this: shtBonus.Range("A1").select

Once again, Thanks for your help and directing me to right direction.

Best regards,

Nasim


On Feb 15, 11:48 am, Paul Schreiner <schreiner_p...@att.net> wrote:
> The choice of which approch to use is really a question of Readability and
> Functionality.
>
> You can use:
> Sheet1.Select
> Sheet2.Select
> Sheet3.Select
>
> as long as you know you're not going to be deleting and adding sheets.
> Once you delete a sheet, even if you make a copy and delete the original, this
> will
> fail and you have to update the code.
> Plus, as a programmer, you'll have to remember which sheet is the "Process"
> sheet, etc.
>
> The same problem occurs with the use of Sheets(i)
> If someone moves a sheet within the workbook, the sheets() array changes.
>
> I prefer to use something like this at the beginning of the macro:
> ShtProcess = "Process"
> ShtHours = "Hours"
> ShtBreakdn = "Breakdown"
>
> then within the macro:
> Sheets(ShtProcess).Select
> That way, If I want, I can create a routine that checks for valid sheet names.
> If someone changes the sheet name, I can find it based on keywords and rename
> the sheet variable.
> Even then, if I decide to change the sheet name, I only have to change it once
> in my routine.
>
> also, see my notes below:
>
>  
>
> ________________________________
>
> From: Nasim <nbeiz...@gmail.com>
> To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com>
> Sent: Tue, February 15, 2011 11:37:11 AM
> Subject: Re: $$Excel-Macros$$ Sheets(2) refers to 2nd sheet in excell file not
> sheet with index2
>
> ----------------------------------------------------------
> this should be:
>  Thisworkbook.sheetS("whatever").select
> ----------------------------------------------------------
> 2- Doesn't this change the name that the tab is showing (showing
> "whatever" instead of "hours")? If so, what if somebody renames the
> tabs later. Will this not confuse a user as I am replacing the sheet
> name to what I want?
> -----------------------------------------------------------------
> Yes... Thisworkbook.sheet2.name = "whatever" does change the sheet name
> that is displayed in the sheet "tabs".
> But you wouldn't change the sheet name unless necessary...
> Did I misunderstand the question?
> -----------------------------------------------------------------------
>
> 3- Or should I simply say:  Thisworkbook.sheet2.select? Does this
> select sheet2(hours) or sheet2(Breakdown)? I guess it will be
> sheet2(hours).
> -----------------------------------------------------------------
> First of all sheet2 is not an array (so no ()'s)
> Sheet2 is a sheet OBJECT.
> The Sheets() array requires an array index, or the sheet name.
> sheets(Breakdown) would imply that there is a variable called Breakdown
> that has a value being passed to the Sheets() array.
> Since Breakdown is NOT a variable, it would result in:
> Sheets(), which would fail.
> Using your example, you can use:
> Sheets("Breakdown").select
> Sheets(2).Select (since you said "Breakdown" is the second sheet)
> Sheet3.select
> ---------------------------------------------------------------------
>
> 4- What if I need to use variable and refer to sheet2 not sheet in 2nd
> position? I used to used sheets(i). if i=2 then it will point to
> sheet3(which in 2nd position-as I learnt from you) whereas I need to
> point to sheet2 which is in 3rd position. what syntax should I use?
> ----------------------------------------------------------------------
> I would suggest using the sheet name:
> ShtName = "Breakdown"
> Sheets(ShtName).
> If you MUST use the sheets array index,
> you can find it by using:
> For i = 1 to sheets.count
>     if (sheets(i).name = "Breakdown") then
>         exit for
>     end if
> next i
> sheets(i).Select
> ----------------------------------------------------------------------
>
> 5- Here is the part that I am referencing my sheets:
>
> Dim WSB, WSH As Worksheet
> Dim u, t, p, q, LastRowH, LastRowB As Integer
>
> Set WSB = ThisWorkbook.Sheets(9)  ' :    I changed it to Set WBS =
> Thisworkbook.Sheet9  and it does not work
> Set WSH = ThisWorkbook.Sheets(2)
>  
> ----------------------------------------------------------------------
> Can you tell me what your workbook structure is?
>
> what are the sheet names?
> what does the VB explorer show?
>
> can you send me the file? (or at least part of it?)
>
> I'd be glad to help
>
> Paul
> -------------------------------------------------------------------------
>
> I am still so confused. I appreciate if you could explaine this a bit
> more.
>
> Best regards,
>
> Nasim
>
> On Feb 14, 10:07 pm, Paul Schreiner <schreiner_p...@att.net> wrote:
>
>
>
> > In your VBA Object Explorer, you'll see
> > Sheet1(Name1)
> > Sheet2(Name2)
> > Sheet3(Name3)
>
> > If you delete the sheet named "Name2", create a new sheet, and call the NEW
> > sheet "Name2"
> > It won't be:
> > Sheet2(Name2), it'll be:
> > Sheet4(Name2).
>
> > So the LIST will be:
> > Sheet1(Name1)
> > Sheet3(Name3)
> > Sheet4(Name4)
>
> > in VBA the Sheets array is:
> > Sheets(1).Name = "Name1"
> > Sheets(2).Name = "Name3"
> > Sheets(3).Name = "Name2"
>
> > Because the Sheets() array is a list of sheet names.
> > An odd occurence though is:
> > If you save and exit Excel, open the file,
> > and create a new Sheet (Name4)
> > it will create it as:
> > Sheet2(Name4)
> > and the array becomes:
> > Sheets(1).Name = "Name1"
> > Sheets(2).Name = "Name4"
> > Sheets(3).Name = "Name3"
> > Sheets(4).Name = "Name2"
>
> > So, basically, when you see "sheet1", "sheet2", etc in the VBA Project
> >Explorer,
> > it is NOT a sheet name and canNOT be used as the array.
>
> > Because of this, using sheets(1) or Sheets(2) is inconsistent, and I NEVER 
> > use
> > it.
> > (some of my macros delete and create several sheets during processing.  It's
> >not
> > uncommon to be up to sheet300 in a session).
>
> > What I would suggest is to use:
> > Sheets("Name1") or set a variable for the sheet name
> > ShtName = "Name3"
> > and use:
>
> > Sheets(ShtName).Select
>
> > Paul
>
> > ________________________________
> > From: Nasim <nbeiz...@gmail.com>
> > To: MS EXCEL AND VBA MACROS <excel-macros@googlegroups.com>
> > Sent: Mon, February 14, 2011 6:02:46 PM
> > Subject: $$Excel-Macros$$ Sheets(2) refers to 2nd sheet in excell file not
> >sheet
> > with index2
>
> > Hi,
>
> > we are using excel 2010. I use sheets(2) in my code and it was working
> > fine (since this was the 2nd tab in my file till I manually added
> > another sheet and I moved this 3rd sheet betwenn sheet 1 and 2 so now
> > 3rd sheet is in 2nd order in my file(2nd tab). I have renamed the tabs
> > ofcourse and the indexes should still work but they dont. here is the
> > broblem
>
> > set wsh = thisworkbook.sheets(2)
> > wsh.activate  : this line activates sheets(3) which is the 2nd tab in
> > my file now
>
> > I used sheets("sheet2") and it produces errors.
> > It seems like all sheet indexes after have shifted 1 number up.
> > I need to reference many different sheets in this file and I want to
> > be able to add/delete/move/rename sheets without any problems. Only if
> > index was working ....
> > I have never had this problem before. this is the first time this is
> > happening. Is it seemthing I do wrong or is it the setup or is it
> > excel 2010?
>
> > I appreciate your help.
>
> > Best regards,
>
> > Nasim
>
> > --
> >---------------------------------------------------------------------------­-------
> >-
>
> > Some important links for excel users:
> > 1. Follow us on TWITTER for tips tricks and links
> >:http://twitter.com/exceldailytip
> > 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310
> > 3. Excel tutorials athttp://www.excel-macros.blogspot.com
> > 4. Learn VBA Macros athttp://www.quickvba.blogspot.com
> > 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com
>
> > To post to this group, send email to excel-macros@googlegroups.com
>
> > <><><><><><><><><><><><><><><><><><><><><><>
> > Like our page on facebook , Just follow below
> >linkhttp://www.facebook.com/discussexcel
>
> --
> ----------------------------------------------------------------------------------
>
> Some important links for excel users:
> 1. Follow us on TWITTER for tips tricks and links 
> :http://twitter.com/exceldailytip
> 2. Join our LinkedIN group @http://www.linkedin.com/groups?gid=1871310
> 3. Excel tutorials athttp://www.excel-macros.blogspot.com
> 4. Learn VBA Macros athttp://www.quickvba.blogspot.com
> 5. Excel Tips and Tricks athttp://exceldailytip.blogspot.com
>
> To post to this group, send email to excel-macros@googlegroups.com
>
> <><><><><><><><><><><><><><><><><><><><><><>
> Like our page on facebook , Just follow below 
> linkhttp://www.facebook.com/discussexcel
>
> Thanks for your thorough explanation Paul. I now understand that
> sheets() points to the position of the sheet in the file. I still do
> not understand how to use the sheet.name though.
> This is what I have in objext explorer
>
> sheet1 (Process)  'is the first sheet
> sheet2 (Hours) ' is 3rd sheet
> sheet3 (Breakdown) ' is 2nd sheet
>
> 1- Should I say : Thisworkbook.sheet2.name= "whatever"
>                     Thisworkbook.sheet("whatever").select

-- 
----------------------------------------------------------------------------------
Some important links for excel users:
1. Follow us on TWITTER for tips tricks and links : 
http://twitter.com/exceldailytip
2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310
3. Excel tutorials at http://www.excel-macros.blogspot.com
4. Learn VBA Macros at http://www.quickvba.blogspot.com
5. Excel Tips and Tricks at http://exceldailytip.blogspot.com
 
To post to this group, send email to excel-macros@googlegroups.com

<><><><><><><><><><><><><><><><><><><><><><>
Like our page on facebook , Just follow below link
http://www.facebook.com/discussexcel

Reply via email to