Home |
Search |
Today's Posts |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Tom -
Thanks so much for the extra tweaking! It's working beautifully! -- Sandy "Tom Ogilvy" wrote: Sub test() Dim cell As Range Dim Grng As Range Dim Icell As Range Dim blank_cells As Range With ActiveSheet Set Grng = .Range("G9, G15, G19, G22, G25, G39") For Each cell In Grng Set Icell = .Cells(cell.Row, "I") If (cell.Value = "No" Or cell.Value = "N/A") _ And Icell.Text = "False" Or IsEmpty(Icell) Then If blank_cells Is Nothing Then Set blank_cells = Icell Else Set blank_cells = Union(blank_cells, Icell) End If Elseif cell = "" and Icell = "" then If blank_cells Is Nothing Then Set blank_cells = cell Else Set blank_cells = Union(blank_cells, cell) End If set blank_cells = Union(blank_cells,Icell) End If Next cell End With MsgBox "Number of blanks: " & blank_cells.Count & vbCrLf & vbCrLf & _ "Blank cells(s): " & blank_cells.Address End Sub -- Regards, Tom Ogilvy "Sandy" wrote in message ... Hi again - I did solve my problem with the following code and your code works beautifully: <snip If (cell.Value = "No" Or cell.Value = "N/A") And Icell.Text = False Or IsEmpty(Icell) Then <snip I do have another bigger problem, though. If the value in G is blank, I have to return that also, so another scenario to be included is if G is blank and column I is blank also, both column addresses have to appear in the MsgBox. Let me know your thoughts on the above. -- Sandy "Doug Glancy" wrote: Sandy, I rewrote most of it. I hope this does what you want, or gives you some help: Sub test() Dim cell As Range Dim Grng As Range Dim Icell As Range Dim blank_cells As Range With ActiveSheet Set Grng = .Range("G9, G15, G19, G22, G25, G39") For Each cell In Grng Set Icell = .Cells(cell.Row, "I") If (cell.Value = "No" Or cell.Value = "N/A") And IsEmpty(Icell) Then If blank_cells Is Nothing Then Set blank_cells = Icell Else Set blank_cells = Union(blank_cells, Icell) End If End If Next cell End With MsgBox "Number of blanks: " & blank_cells.Count & vbCrLf & vbCrLf & _ "Blank cells(s): " & blank_cells.Address End Sub -- hth, Doug "Sandy" wrote in message ... Dim c As Variant Dim i As Variant Dim numError As Integer numError = 0 Dim Grng As Range Dim iVar As Integer Dim Arng As Variant iVar = 0 Arng = Array("I9", "I15", "I19", "I22", "I25", "I39") With ActiveSheet Set Grng = .Range("G9, G15, G19, G22, G25, G39") End With For Each i In Grng.Cells If i.Text = "No" Or i.Text = "N/A" Then 'Then check to see if indiv cell in I = empty If Len(Trim(ActiveSheet.Range(Arng(iVar)))) <= 1 Then numError = numError + 1 End If iVar = iVar + 1 End If Next i MsgBox("Number of blanks: " & numError _ & vbCrLf & vbCrLf & "Blank cells(s): " & vbCrLf & vbCrLf & CellAddresses Cell Addresses is the part of the MsgBox I need. If numError is 0, I have to loop through cells in G and cells in I and list them in the MsgBox, five cells per line with commas between each cell. I did something similar to this a few days ago and thought I could just plug in that code, however, this time, there are two columns to consider -- if the G cell is blank it needs to be displayed in the list, or if the G cell has "No" or "N/A" then Column I has to be checked for a blank; if it is blank, it has to be listed too. Any help will be greatly appreciated!! -- Sandy |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Tricky array formula issue - Using array formula on one cell, then autofilling down a range | Excel Programming | |||
Can I use array to simplify this code. | Excel Programming | |||
Code for Array formula | Excel Programming | |||
VB Code Naming a Range (range changes each time) | Excel Programming | |||
Simplifying code using array | Excel Programming |