View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Mifty Mifty is offline
external usenet poster
 
Posts: 99
Default Loop thru some sheets in wkbk and call macro - better way?

Hi Greg,

Looks good.

Sorry I haven't answered before - having the week from hell!

Can this be altered to set data validation to ="" (2nd option in dropdown)?

I'm already posting this question further along in the forum.

Option Explicit
Sub Datavalreset()
Dim rng2 As Range ' specifies range in wksh
Dim rng As Range 'specifies type of cell i.e. special cells
Dim ws As Worksheet
Dim cell As Range

For Each ws In ActiveWorkbook.Worksheets

On Error Resume Next
Set rng = Range("A1:T45")
Set rng2 = rng.Cells.SpecialCells(xlCellTypeAllValidation)
On Error GoTo 0
If Not rng2 Is Nothing Then

For Each cell In rng2

If cell.Validation.Type = xlValidateList Then
cell.Value = ""
End If
Next
Else
MsgBox "No Data Validation Cells"
End If
Next ws
End Sub
This code works when all sheets have data validation but does not pick up
range when some sheets don't. When I found this out I remembered that I
hadn't replied to your post - sorry and thought that you may be able to help
me

Many thanks


--
Mifty


"Greg Glynn" wrote:

Hi Mifty,

You might try excluding the names of the sheets which you know you
don't want to change:

Sub ConsolidateSheets()

'Macro by Greg Glynn - May 2007

Application.ScreenUpdating = False

Dim Wks As Worksheet
Sheets("PC Consolidated List").Range("A2:IV65536").Clear

For Each Wks In Worksheets
If Wks.Name < "Divisions & Cost Centres" And _
Wks.Name < "PC Consolidated List" And _
Wks.Name < "Lookup Tables" Then

Wks.ClearContents

End If
Next Wks

Application.ScreenUpdating = True


End Sub