Selecting a specific tab in a tabstrip

G

Guest

Hello -
I have a tabstrip, and I have tabs added, the number depending on other
things. I need to make a specific tab (the last one, the one with the highest
index) the one that is selected. Right now, it shows the first tab (index =
0) and I can't figure out how to write code to default to the last one.
Can anyone help?

Thanks!
dan
 
G

GysdeJongh

Dan said:
Hello -
I have a tabstrip, and I have tabs added, the number depending on other
things. I need to make a specific tab (the last one, the one with the
highest
index) the one that is selected. Right now, it shows the first tab (index
=
0) and I can't figure out how to write code to default to the last one.


Sub SelectLastWorksheet()
'
Dim wkbMyWorkbook As Workbook
Dim shtMyWorksheet As Worksheet
Dim K As Integer
'
Set wkbMyWorkbook = ActiveWorkbook
K = wkbMyWorkbook.Worksheets.Count
Set shtMyWorksheet = wkbMyWorkbook.Worksheets(K)
shtMyWorksheet.Activate
End Sub

hth
Gys
 
G

Guest

Thanks Dave -
Yes, in a user form. Your suggestion works to bring that tab "forward". My
original question wasn't very clear. After that tab is "forward" or selected,
I expected it to run the "mytabstrip_Change()" event. But that is where I
can't seem to make it work.
Normally, the user clicks on a tab. This fires the _Change() event, and the
macro fills in the info for that tab.
So what I need is a way in the macro to select a "default" tab, after it
creates all of the tabs, and fill in the info for that tab.
I tried adding
Call mytabstrip_Change()
but that does NOT call the _Change() event. Why is that?

Thanks!
dan
 
D

Dave Peterson

It did fire the _change for me--well, if I wasn't on that last tab already.

If I was already there, then that tabstrip didn't change, so it didn't fire.

But if I wanted to call that _change routine, I could use:

Option Explicit
Private Sub CommandButton1_Click()
With Me.TabStrip1
If .Value = .Tabs.Count - 1 Then
'already on the last one, so call it direct
Call TabStrip1_Change
Else
'do nothing special, let excel do the work
.Value = .Tabs.Count - 1
End If
End With
End Sub
Private Sub TabStrip1_Change()
MsgBox Me.TabStrip1.Value
End Sub
 
G

Guest

Thanks again Dave -
You helped me find the problem - why doesn't mine fire when yours does????
I have a variable that my subs use in order to PREVENT other things from
firing when I don't want them to.
This variable was still set. So even calling the _Change event didn't do any
good, because the first thing the _Change sub does is check my variable, then
exit sub.
Jeez.

Thanks for the help!

dan
 
D

Dave Peterson

I don't know. Maybe one of us is special <bg>.

I used xl2003 under winXP for my testing. You may want to start a new userform
(in a new workbook) to see if it fires there.
Thanks again Dave -
You helped me find the problem - why doesn't mine fire when yours does????
I have a variable that my subs use in order to PREVENT other things from
firing when I don't want them to.
This variable was still set. So even calling the _Change event didn't do any
good, because the first thing the _Change sub does is check my variable, then
exit sub.
Jeez.

Thanks for the help!

dan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top