ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How can this crash Excel? (https://www.excelbanter.com/excel-programming/442950-how-can-crash-excel.html)

RB Smissaert

How can this crash Excel?
 
In a loaded .xla add-in I have the following code in the ThisWorkbook
module:

Option Explicit
Private WithEvents xlApp As Excel.Application

Private Sub xlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)
On Error GoTo ERROROUT
If Len(Target.Name.Name) 10 Then
Application.StatusBar = Space(8) & Target.Name.Name
Else
Application.StatusBar = False
End If
Exit Sub
ERROROUT:
Application.StatusBar = False
End Sub

This code runs fine on many machines, but on one particular machine only
(Excel 2003, Win XP) the line
If Len(Target.Name.Name) 10 Then
crashes Excel when there is a filter in the sheet.

What possibly could be the trouble here?
I can't reproduce this at all on my machine, so difficult to unravel this
problem, but maybe somebody
has an idea.

RBS


joel[_994_]

How can this crash Excel?
 

check the error setting in VBA menu Tools - Options - general - Error
trapping.

It may be that the book that crashes has a different setting.

I think your code really wants to get the name of the sheet and I would
change the code to this

from:
If Len(Target.Name.Name) 10 Then

to:
If Len(Target.parent.Name) 10 Then


The parent of a cell or range opn a worksheet is the worksheet.


--
joel
------------------------------------------------------------------------
joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229
View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=206051

http://www.thecodecage.com/forumz


RB Smissaert

How can this crash Excel?
 
That workbook has the right error handling setting, that is Break on
unhandled errors.
It is not the name of the sheet, but the name of the selected range.
Baffling me this.

RBS


"joel" wrote in message
...

check the error setting in VBA menu Tools - Options - general - Error
trapping.

It may be that the book that crashes has a different setting.

I think your code really wants to get the name of the sheet and I would
change the code to this

from:
If Len(Target.Name.Name) 10 Then

to:
If Len(Target.parent.Name) 10 Then


The parent of a cell or range opn a worksheet is the worksheet.


--
joel
------------------------------------------------------------------------
joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229
View this thread:
http://www.thecodecage.com/forumz/sh...d.php?t=206051

http://www.thecodecage.com/forumz



Peter T

How can this crash Excel?
 
Hi Bart,

Nothing obvious springs to mind. A Sheet with an autofilter (or sheet that
has had an autofilter) will include a worksheet level name like this

Sheet1!_FilterDatabase

If user selects the cells with the dropdown filters that's what would be
returned with
Target.Name.Name

However that shouldn't cause a problem. Best thing would be to ask the user
to send you a copy of the problematic workbook, stripped down with just
enough to reproduce the problem.

Regards,
Peter T


"RB Smissaert" wrote in message
...
In a loaded .xla add-in I have the following code in the ThisWorkbook
module:

Option Explicit
Private WithEvents xlApp As Excel.Application

Private Sub xlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target As
Range)
On Error GoTo ERROROUT
If Len(Target.Name.Name) 10 Then
Application.StatusBar = Space(8) & Target.Name.Name
Else
Application.StatusBar = False
End If
Exit Sub
ERROROUT:
Application.StatusBar = False
End Sub

This code runs fine on many machines, but on one particular machine only
(Excel 2003, Win XP) the line
If Len(Target.Name.Name) 10 Then
crashes Excel when there is a filter in the sheet.

What possibly could be the trouble here?
I can't reproduce this at all on my machine, so difficult to unravel this
problem, but maybe somebody
has an idea.

RBS




RB Smissaert

How can this crash Excel?
 
Hi Peter,

I got the workbook, but I couldn't reproduce this problem.
The only purpose of that code was to show the selected
range name in the statusbar if it possibly wouldn't show
fully in the name box (at the top left).
So, not really essential and I have thrown that code out now.
I know in fact a way (with the API) to widen that name
box and that is a better way.

RBS


"Peter T" <peter_t@discussions wrote in message
...
Hi Bart,

Nothing obvious springs to mind. A Sheet with an autofilter (or sheet that
has had an autofilter) will include a worksheet level name like this

Sheet1!_FilterDatabase

If user selects the cells with the dropdown filters that's what would be
returned with
Target.Name.Name

However that shouldn't cause a problem. Best thing would be to ask the
user to send you a copy of the problematic workbook, stripped down with
just enough to reproduce the problem.

Regards,
Peter T


"RB Smissaert" wrote in message
...
In a loaded .xla add-in I have the following code in the ThisWorkbook
module:

Option Explicit
Private WithEvents xlApp As Excel.Application

Private Sub xlApp_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Range)
On Error GoTo ERROROUT
If Len(Target.Name.Name) 10 Then
Application.StatusBar = Space(8) & Target.Name.Name
Else
Application.StatusBar = False
End If
Exit Sub
ERROROUT:
Application.StatusBar = False
End Sub

This code runs fine on many machines, but on one particular machine only
(Excel 2003, Win XP) the line
If Len(Target.Name.Name) 10 Then
crashes Excel when there is a filter in the sheet.

What possibly could be the trouble here?
I can't reproduce this at all on my machine, so difficult to unravel this
problem, but maybe somebody
has an idea.

RBS







All times are GMT +1. The time now is 05:02 AM.

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