ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Selecting a specific tab in a tabstrip (https://www.excelbanter.com/excel-programming/390500-selecting-specific-tab-tabstrip.html)

dan

Selecting a specific tab in a tabstrip
 
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

GysdeJongh

Selecting a specific tab in a tabstrip
 

"Dan" wrote in message
...
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




Dave Peterson

Selecting a specific tab in a tabstrip
 
On a userform?

Me.TabStrip1.Value = Me.TabStrip1.Tabs.Count - 1



Dan wrote:

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


--

Dave Peterson

dan

Selecting a specific tab in a tabstrip
 
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

"Dave Peterson" wrote:

On a userform?

Me.TabStrip1.Value = Me.TabStrip1.Tabs.Count - 1



Dan wrote:

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


--

Dave Peterson


Dave Peterson

Selecting a specific tab in a tabstrip
 
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



Dan wrote:

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

"Dave Peterson" wrote:

On a userform?

Me.TabStrip1.Value = Me.TabStrip1.Tabs.Count - 1



Dan wrote:

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


--

Dave Peterson


--

Dave Peterson

dan

Selecting a specific tab in a tabstrip
 
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

"Dave Peterson" wrote:

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



Dan wrote:

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

"Dave Peterson" wrote:

On a userform?

Me.TabStrip1.Value = Me.TabStrip1.Tabs.Count - 1



Dan wrote:

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

--

Dave Peterson


--

Dave Peterson


Dave Peterson

Selecting a specific tab in a tabstrip
 
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.

Dan wrote:

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

"Dave Peterson" wrote:

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



Dan wrote:

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

"Dave Peterson" wrote:

On a userform?

Me.TabStrip1.Value = Me.TabStrip1.Tabs.Count - 1



Dan wrote:

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

--

Dave Peterson


--

Dave Peterson


--

Dave Peterson


All times are GMT +1. The time now is 06:48 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com