Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Here is the code I am using to check for cells being filled in.
Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If Next cel End Sub There are several cells in range FILLIN01. If 6 of these are not filled out, I get the message box 6 times. How do I get the message box only once if any of the cells in the range are blank? Thanks, Phil |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Set another variable to determine the outcome of the loop and use that after
the loop completes... something like..... Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim xvalid As Boolean xvalid = False For Each cel In Range("FILLIN01") If IsEmpty(cel) Then xvalid = True Next cel If xvalid Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If End Sub -- Cheers Nigel "Phil Floyd" wrote in message ... Here is the code I am using to check for cells being filled in. Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If Next cel End Sub There are several cells in range FILLIN01. If 6 of these are not filled out, I get the message box 6 times. How do I get the message box only once if any of the cells in the range are blank? Thanks, Phil |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Phil
Extending Nigel's approach; I'd add a counter to state "there are 5 empty cells" and if Yes reply then go to the cells. Something like Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim Ans As Long Dim Cel As Range Dim i As Long For Each Cel In Range("FILLIN01") If IsEmpty(Cel) Then i = i + 1 Next Cel If i 0 Then Ans = MsgBox("There are " & i & _ " empty cells. Complete now ?", _ vbYesNo) If Ans = vbYes Then Cancel = True Range("FILLIN01").Parent.Activate Range("FILLIN01").Select End If End If End Sub HTH. Best wishes Harald "Phil Floyd" skrev i melding ... Here is the code I am using to check for cells being filled in. Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If Next cel End Sub There are several cells in range FILLIN01. If 6 of these are not filled out, I get the message box 6 times. How do I get the message box only once if any of the cells in the range are blank? Thanks, Phil |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True Exit Sub End If End If Next cel End Sub Exit Sub after the msgbox shows. If the msgbox shows, then you found your first empty cell. Job done. Mike F "Phil Floyd" wrote in message ... Here is the code I am using to check for cells being filled in. Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If Next cel End Sub There are several cells in range FILLIN01. If 6 of these are not filled out, I get the message box 6 times. How do I get the message box only once if any of the cells in the range are blank? Thanks, Phil |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You guys are the greatest. I never thought I would have so many options.
Thanks, Phil "Phil Floyd" wrote in message ... Here is the code I am using to check for cells being filled in. Private Sub Workbook_BeforeClose(Cancel As Boolean) For Each cel In Range("FILLIN01") If IsEmpty(cel) Then Ans = MsgBox("Sheet not complete! Would you like to complete sheet now?", vbYesNo + vbQuestion, "Incomplete Sheet!") If Ans = vbYes Then Cancel = True End If End If Next cel End Sub There are several cells in range FILLIN01. If 6 of these are not filled out, I get the message box 6 times. How do I get the message box only once if any of the cells in the range are blank? Thanks, Phil |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Excel arrows don't move black box but move the window | Excel Discussion (Misc queries) | |||
Msgbox loop | New Users to Excel | |||
Loop column A and delete and move on condition | Excel Programming | |||
Macro to move, create formulas and loop | Excel Programming | |||
HELP!!!! Can't stop a loop (NOT an infinite loop) | Excel Programming |