Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I would approach it like this:
Sub ErrorCheckTEST() Dim i As Long Dim cell As Range, cell1 As Range Dim rng As Range Dim msg(1 To 3) As String msg(1) = "ERROR Date is empty" msg(2) = "ERROR Description is empty" msg(3) = "ERROR Type is empty" Range("B8:B15","D8:E15").Interior.ColorIndex = xlNone For Each cell In Range("B8:B15") Set rng = cell.Range("A1,C1:D1") i = 1 If Application.CountBlank(cell.Range("A1")) + _ Application.CountBlank(cell.Range("C1:D1")) = 3 _ Then Exit Sub For Each cell1 In rng If cell1 = "" Then cell1.Interior.ColorIndex = 15 MsgBox msg(i) & ": " & cell.Address Exit Sub End If i = i + 1 Next cell1 Next cell End Sub -- Regards, Tom Ogilvy "jfcby" wrote in message ups.com... Hello Tom, Thank you for your help! The code works great! One more questions: How do you reset the color to No Fill after the blank cells has data in them? Thanks for your help, jfcby Tom Ogilvy wrote: My error, here is a correction: Sub ErrorCheckTEST() Dim i As Long Dim cell As Range, cell1 As Range Dim rng As Range Dim msg(1 To 3) As String msg(1) = "ERROR Date is empty" msg(2) = "ERROR Description is empty" msg(3) = "ERROR Type is empty" For Each cell In Range("B8:B15") Set rng = cell.Range("A1,C1:D1") i = 1 If Application.CountBlank(cell.Range("A1")) + _ Application.CountBlank(cell.Range("C1:D1")) = 3 _ Then Exit Sub For Each cell1 In rng If cell1 = "" Then cell1.Interior.ColorIndex = 15 MsgBox msg(i) & ": " & cell.Address Exit Sub End If i = i + 1 Next cell1 Next cell End Sub -- Regards, Tom Ogilvy "jfcby" wrote in message ups.com... Hello Tom, When I tried your code it give me a error message: Run Time Error '13' Type Mismatch and highlights this line of code: If Application.CountBlank(rng) = 3 Then Exit Sub Thank you for your help, jfcby Tom Ogilvy wrote: As previously posted: Sub ErrorCheckTEST() Dim i as Long Dim cell as Range, cell1 as Range Dim rng as Range Dim msg(1 to 3) as String msg(1) = "ERROR Date is empty" msg(2) = "ERROR Description is empty" msg(3) = "ERROR Type is empty" for each cell in Range("B8:B15") set rng = cell.Range("A1,C1:D1") i = 1 if application.CountBlank(rng) = 3 then exit sub for each cell1 in rng if cell1 = "" then cell1.Interior.ColorIndex = 15 msgbox msg(i) & ": " & cell.Address exit sub end if i = i + 1 Next cell1 Next cell End Sub -- Regards, Tom Ogilvy "jfcby" wrote in message oups.com... Hello, The code provided works great but I'm tring to insert it into this code2 but it is not working right. It does not go to the next cell it stays at row 8 and does not go to row 9 and so on. How can this code1 be inserted into code2 to work right? code1 Dim c As Variant For c = 8 To 15 If Cells(c, "B").Value & Cells(c, "D").Value & Cells(c, "E").Value _ = "" Then Exit Sub Next c code2 Sub ErrorCheckData() 'Tom Ogilvy Dim i As Long Dim Cell As Range, cell1 As Range Dim Rng As Range Dim msg(1 To 3) As String msg(1) = "ERROR Date is empty" msg(2) = "ERROR Description is empty" msg(3) = "ERROR Type is empty" For Each Cell In Range("B8:B15") Set Rng = Cell.Range("A1,C1:D1") i = 1 For Each cell1 In Rng If cell1 = "" Then cell1.Interior.ColorIndex = 15 MsgBox msg(i) & ": " & Cell.Address End End If i = i + 1 Next cell1 Next Cell End Sub The code I tried and did not work right: Sub ErrorCheckData() 'Tom Ogilvy Dim i As Long Dim c As Variant Dim Cell As Range, cell1 As Range Dim Rng As Range Dim msg(1 To 3) As String msg(1) = "ERROR Date is empty" msg(2) = "ERROR Description is empty" msg(3) = "ERROR Type is empty" For Each Cell In Range("B8:B15") Set Rng = Cell.Range("A1,C1:D1") i = 1 For c = 8 To 15 If Cells(c, "B").Value & Cells(c, "D").Value & Cells(c, "E").Value _ = "" Then Exit Sub For Each cell1 In Rng If cell1 = "" Then cell1.Interior.ColorIndex = 15 MsgBox msg(i) & ": " & Cell.Address End End If i = i + 1 Next cell1 Next c Next Cell End Sub Thank you for your help, jfcby Dave Peterson wrote: <vbg Don Guillett wrote: Maybe " I " should test. -- Don Guillett SalesAid Software "Dave Peterson" wrote in message ... I think Gary's Student was actually concatenating all those cells into a single string and then comparing that concatenated string to "". If the OP wanted to use AND, then it would look more like: if cells(i,"D").value = "" _ and cells(i,"E").value = "" _ and cells(i, "B").value = "" then .... Don Guillett wrote: Fully tested ? For i = 8 To 15 If Cells(i, "D").Value & Cells(i, "E").Value & Cells(i, "B").Value = "" If Cells(i, "D").Value AND Cells(i, "E").Value AND & Cells(i, "B").Value = "" -- Don Guillett SalesAid Software "Gary''s Student" wrote in message ... sub demo() For i = 8 To 15 If Cells(i, "D").Value & Cells(i, "E").Value & Cells(i, "B").Value = "" Then Exit Sub End If Next End Sub -- Gary's Student "jfcby" wrote: Hello, My BEGIN row range is "B8,D8:E8" END row range is "B15,D15:E15". I need to check each row value and if the row is all blank I want to exit sub, if the row range has all data then I want go to continue macro, if a row has a blank cell I want to continue macro. This is a example code I've got so far but I do not know how to get it to loop the the rows: If Range("B8").Value & Range("D8").Value & Range("E8").Value = "" Then Exit Sub Thank you for your help in advance, jfcby -- Dave Peterson -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Nested If Loop Limitation for Excel 2003 | Excel Discussion (Misc queries) | |||
Insert Data Last Row Loop through cells Excel 2000 & 2003 | Excel Programming | |||
Upgrade from Excel 2000 to Excel 2003 without MS Office 2003? | Excel Discussion (Misc queries) | |||
Optimize VBA Excel 2003 NextFor loop | Excel Programming | |||
Excel 2000 VBA - Set Print Range in dynamic range | Excel Programming |