Home |
Search |
Today's Posts |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The DeleteUnusedValidations macro is incorrectly named... it should be named
ColorUnusedValidations (we are coloring the cells, not deleting the validations). -- Rick (MVP - Excel) "Rick Rothstein" wrote in message ... Good catch! I completely forgot that Validations can lie outside of the UsedRange. Okay, to solve this problem, I created an UnusedRange function to get around fact that SpecialCells(xlCellTypeBlanks) won't look outside of the UsedRange. Below is my coded solution. The OP should copy all of this into a Module (Insert/Module from the VB editor's menu bar) and run the DeleteUnusedValidations macro. Sub DeleteUnusedValidations() On Error Resume Next Worksheets("Sheet3").UsedRange.SpecialCells(xlCell TypeAllValidation). _ SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 18 UnusedRange("Sheet3").SpecialCells(xlCellTypeAllVa lidation). _ Interior.ColorIndex = 18 End Sub Function UnusedRange(WorksheetName As String) As Range Dim UR As Range Dim WS As Worksheet Set WS = Worksheets(WorksheetName) Set UR = WS.UsedRange With UR With .Offset(.Rows.Count, .Columns.Count) Set UnusedRange = .Resize(1, WS.Columns.Count - _ .Column + 1).EntireColumn Set UnusedRange = Union(UnusedRange, .Resize(WS.Rows.Count - _ .Row + 1, 1).EntireRow) End With If UR.Row 1 Then Set UnusedRange = Union(UnusedRange, WS.Range("A1", _ WS.Range(Split(.Offset(-1).Address, _ ":")(0))).EntireRow) End If If UR.Column 1 Then Set UnusedRange = Union(UnusedRange, WS.Range("A1", _ WS.Range(Split(.Offset(, -1).Address, _ ":")(0))).EntireColumn) End If End With End Function -- Rick (MVP - Excel) "Mel" wrote in message ... Oops. I didn't catch the part about validated cells being blank. I thought that was too easy. <g But on this topic, Rick, what if the OP had blank validated cells outside the UsedRange, which is in an area xlCellTypeBlanks doesn't seem to evaluate but xlCellTypeValidation does. Without both working outside the UsedRange, it's no good to catch those cells. The user could do a xlCellTypeValidation selection and then loop through the selection finding blank cells. That makes for a smaller loop, but is there a loopless way? Is there a way to force xlCellTypeBlanks to evaluate all selected cells, not just the UsedRange? You know... in case I'm asked this on a game show. <lol -Melina On Sep 8, 9:59 pm, "Rick Rothstein" wrote: You should be able to do it with this single line of code (just change my example worksheet reference of Sheet3 to your own worksheet's name)... Worksheets("Sheet3").UsedRange.SpecialCells(xlCell TypeAllValidation). _ SpecialCells(xlCellTypeBlanks).Interior.ColorIndex = 18 -- Rick (MVP - Excel) "Lostguy" wrote in message ... Hello! Anyone know a code to go through the active sheet, look for any cells that have validation, and shade them purple? I am modifying an older workbook, and there are stray cells with no data or formula, just validation, so I am trying to track them down. I guess a "For each ws in Workbook" code would be easier. Thanks for any help! VR/ Lost |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
macro Excel problem link cells with Data-Validation option | Excel Discussion (Misc queries) | |||
one column of cells show ####. Values show when I open it. Help | Excel Discussion (Misc queries) | |||
using a macro to apply data validation to several cells | Excel Programming | |||
macro to hide then show cells | Excel Discussion (Misc queries) | |||
Macro to show wraped text in merged cells | Excel Programming |