J
jodleren
Hi all
I have this sheet, with a BOM to order, but it hides certain items.
Then for sorting, I need to hide those items again. I do that by the
last unlabeled coloums, which is X for hide.
So, when calculating, it will hide that.
It worked well until the new 2007 version of Excel - it seems to fire
every second or so
So it flickets all the time.
My code is this, and it fires, then relaxed for a second or so, then
fires again.
Any ideas how I can avoid that?
WBR
Sonnich
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim iHidden, iRow As Integer
Dim ws As Worksheet
If Worksheets("BOM").Cells(1, 28).Value = "" Then
Worksheets("BOM").Cells(1, 28).Value = "X" ' marked that we are
working
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Worksheets("BOM")
' find plase to store hidden data
iHidden = 1
While .Cells(6, iHidden).Text <> ""
iHidden = iHidden + 1
Wend
iRow = 7
While .Cells(iRow, 1).Value <> ""
If .Cells(iRow, iHidden).Value <> "" Then
.Rows(iRow).Hidden = True
End If
iRow = iRow + 1
Wend
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Worksheets("BOM").Cells(1, 28).Value = "" ' free this function
End If
End Sub
I have this sheet, with a BOM to order, but it hides certain items.
Then for sorting, I need to hide those items again. I do that by the
last unlabeled coloums, which is X for hide.
So, when calculating, it will hide that.
It worked well until the new 2007 version of Excel - it seems to fire
every second or so
So it flickets all the time.
My code is this, and it fires, then relaxed for a second or so, then
fires again.
Any ideas how I can avoid that?
WBR
Sonnich
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim iHidden, iRow As Integer
Dim ws As Worksheet
If Worksheets("BOM").Cells(1, 28).Value = "" Then
Worksheets("BOM").Cells(1, 28).Value = "X" ' marked that we are
working
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With Worksheets("BOM")
' find plase to store hidden data
iHidden = 1
While .Cells(6, iHidden).Text <> ""
iHidden = iHidden + 1
Wend
iRow = 7
While .Cells(iRow, 1).Value <> ""
If .Cells(iRow, iHidden).Value <> "" Then
.Rows(iRow).Hidden = True
End If
iRow = iRow + 1
Wend
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Worksheets("BOM").Cells(1, 28).Value = "" ' free this function
End If
End Sub