MrExcel Message Board

Go Back   MrExcel Message Board > Question Forums > Excel Questions

Excel Questions All Excel/VBA questions - formulas, macros, pivot tables, general help, etc. Please post to this forum in English only.

Reply
 
Thread Tools Display Modes
Old May 2nd, 2002, 02:43 PM   #1
chouston
Board Regular
 
Join Date: Apr 2002
Location: Arizona
Posts: 68
Default

Can anyone tell me why this isn't working?
If there is an invalid unit 3 entered it works, but if there is a valid unit # entered it still prints the error message ("Please enter valid...").


'prompt for unit number
unit = InputBox("Enter Unit #:", "Final Billing Form")

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find(unit, lookat:=xlWhole).Row
If resrow Is Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
End If
End With
chouston is offline   Reply With Quote
Old May 2nd, 2002, 02:58 PM   #2
brettvba
MrExcel MVP
 
Join Date: Feb 2002
Location: Christchurch New Zealand
Posts: 1,030
Default

Quote:
On 2002-05-02 13:43, chouston wrote:
Can anyone tell me why this isn't working?
If there is an invalid unit 3 entered it works, but if there is a valid unit # entered it still prints the error message ("Please enter valid...").


'prompt for unit number
unit = InputBox("Enter Unit #:", "Final Billing Form")

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find(unit, lookat:=xlWhole).Row
If resrow Is Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
End If
End With

your inputbox needs to be set up for numbers the default is a string

use
unit = (CLng(InputBox("Enter Unit #:", "Final Billing Form")))

instead and it will recongnise the numbers as before the number when entered would be recognised as "3" instead of 3 the Clng just dims the inputbox as long. If this is not the case post all of your code.

brettvba is offline   Reply With Quote
Old May 2nd, 2002, 03:10 PM   #3
chouston
Board Regular
 
Join Date: Apr 2002
Location: Arizona
Posts: 68
Default

Quote:
On 2002-05-02 13:58, brettvba wrote:

your inputbox needs to be set up for numbers the default is a string

use
unit = (CLng(InputBox("Enter Unit #:", "Final Billing Form")))

instead and it will recongnise the numbers as before the number when entered would be recognised as "3" instead of 3 the Clng just dims the inputbox as long. If this is not the case post all of your code.

I'm pretty sure Clng won't work b/c many units have letters such as "101A", "B102", or don't have letters but have non-integer name like "101-2" or "277-1". I tried dim the inputbox as varient and string with your method but it still didn't work. I'm very new to VBA and I kinda guessed on the whole "on error resume next" thing. Here's some more code:

Sub finalbill()

Dim unit As String
Dim OutDate As Date



Application.ScreenUpdating = False


'This starts the final bill procedure

'prompt for unit number
'unit = InputBox("Enter Unit #:", "Final Billing Form")
unit = (CLng(InputBox("Enter Unit #:", "Final Billing Form")))

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find(unit, lookat:=xlWhole).Row
If resrow Is Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
End If
End With


-- If I take out the "On Error..." and the "It resrow is empty..." the macro works unless an invalid unit is entered (i.e. one not found in B43:B422 range).

BTW thanks for your prompt reply Brettvba!
chouston is offline   Reply With Quote
Old May 2nd, 2002, 03:19 PM   #4
brettvba
MrExcel MVP
 
Join Date: Feb 2002
Location: Christchurch New Zealand
Posts: 1,030
Default

unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))
would be a variant inputbox

and just dim unit as dim unit

[ This Message was edited by: brettvba on 2002-05-02 14:22 ]
brettvba is offline   Reply With Quote
Old May 2nd, 2002, 03:27 PM   #5
brettvba
MrExcel MVP
 
Join Date: Feb 2002
Location: Christchurch New Zealand
Posts: 1,030
Default

try this it works

Dim unit
Dim OutDate As Date



Application.ScreenUpdating = False


'This starts the final bill procedure

'prompt for unit number
'unit = InputBox("Enter Unit #:", "Final Billing Form")
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find((unit), lookat:=xlWhole).Row
If resrow = Empty Then MsgBox ("Please enter a valid unit number.")
finalbill

End With
End Sub

Sub finalbill()

Dim unit
Dim OutDate As Date



Application.ScreenUpdating = False


'This starts the final bill procedure

'prompt for unit number
'unit = InputBox("Enter Unit #:", "Final Billing Form")
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find((unit), lookat:=xlWhole).Row
If resrow = Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
Else
End If
End With
End Sub


[ This Message was edited by: brettvba on 2002-05-02 14:37 ]
brettvba is offline   Reply With Quote
Old May 2nd, 2002, 03:29 PM   #6
chouston
Board Regular
 
Join Date: Apr 2002
Location: Arizona
Posts: 68
Default

Quote:
On 2002-05-02 14:19, brettvba wrote:
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))
would be a variant inputbox

and just dim unit as dim unit

[ This Message was edited by: brettvba on 2002-05-02 14:22 ]

Here's with the recommendations you've given me:

Sub finalbill()

Dim unit
Dim OutDate As Date



Application.ScreenUpdating = False


'This starts the final bill procedure

'prompt for unit number
'unit = InputBox("Enter Unit #:", "Final Billing Form")
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find(unit, lookat:=xlWhole).Row
If resrow Is Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
End If
End With

this works great when an invalid unit is entered. msgbox "Please enter a valid ..."
pops up. However even when a valid unit number is entered the same msgbox pops up.

However, before I started trying to handle the errors this worked for valid unit, but not for invalid units:

Sub finalbill()

Dim unit
Dim OutDate As Date



Application.ScreenUpdating = False


'This starts the final bill procedure

'prompt for unit number
'unit = InputBox("Enter Unit #:", "Final Billing Form")
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))

'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
resrow = .Find(unit, lookat:=xlWhole).Row
End With

Thanks again for your help Brettvba
chouston is offline   Reply With Quote
Old May 2nd, 2002, 03:31 PM   #7
chouston
Board Regular
 
Join Date: Apr 2002
Location: Arizona
Posts: 68
Default

oops, you replied before my last reply, let me try your solution before you respond to my last one.

Thanks!
chouston is offline   Reply With Quote
Old May 2nd, 2002, 03:39 PM   #8
brettvba
MrExcel MVP
 
Join Date: Feb 2002
Location: Christchurch New Zealand
Posts: 1,030
Default

use the second example
brettvba is offline   Reply With Quote
Old May 2nd, 2002, 04:13 PM   #9
chouston
Board Regular
 
Join Date: Apr 2002
Location: Arizona
Posts: 68
Default

Thank so much for your help, brettvba, I finally worked out the bugs!
chouston is offline   Reply With Quote
Old May 2nd, 2002, 04:37 PM   #10
brettvba
MrExcel MVP
 
Join Date: Feb 2002
Location: Christchurch New Zealand
Posts: 1,030
Default

you would probably wont to enter
Sub finalbill()

Dim unit
Dim OutDate As Date
Application.ScreenUpdating = False
unit = (CVar(InputBox("Enter Unit #:", "Final Billing Form")))
If unit = "" Then Exit Sub
'find row for that unit number
With Sheets("Ridge Download").Range("B43:B422")
On Error Resume Next
resrow = .Find((unit), lookat:=xlWhole).Row
If resrow = Empty Then
MsgBox ("Please enter a valid unit number.")
finalbill
Else
End If
End With
End Sub

that extra line under the input box to exit the loop aswell otherwise it will keep going if they try to cancel
brettvba is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 10:25 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
All contents Copyright 1998-2012 by MrExcel Consulting.
diabetic desserts recipes recipes Diabetic Soups Holiday Pizza Recipes Popcorn Recipes Recipes For Microwave Pasta Recipes Casserole Recipes Chili Recipes Curry Recipes Crockpot Recipes Apples Recipes Bread Recipes Vegetarian Recipes Vegetable recipes Desserts Recipes Appetizers Ethnic Recipes Meat Dishes Barbecue Recipes Sauces Recipes Marinade Recipes Low Fat Recipes Frugal Gourmet Kitchen Classics Recipes On The Grill Cook Books Seafood Recipes Cajun Recipes Breads Low Fat Low Fat Breads Bread Machine Recipes Yeast Breads Quick Breads Fat Free Vegetarian Salad Recipes Eggplant Recipes Radish Recipes Tomato Recipes Jalapeno Recipes Potato Recipes Lettuce Recipes Cabbage Recipes Beans Ambrosia Recipes Biscotti Recipes Desserts Low Fat Cookie Recipes Cheesecake Recipes Cake Recipes Pie Recipes Muffin Recipes Custard Recipes Best Appetizers Appetizers Low Fat Salsa Recipes Dip Recipes International Recipes Afghan Recipes Alaska Recipes French Recipes German Recipes Greek Recipes Italian Recipes Spanish Recipes Thai Recipes Korean Recipes Chinese Recipes Mexican Recipes Indian Recipes Beef Recipes Pork Pork & Ham Pork Butts Pork Chop Recipes Pork Ribs Rulled Pork Poultry Recipes Stews Recipes Ground Beef Barbecue Grill Barbecue Smoker All Purpose Sauce BBQ Sauce Barbecue Sauce Carolina BBQ Sauce Pickle Recipes Marinades Smoking Low Fat Appetizers & Dips Low Fat Breakfast Low Fat Cakes Low Fat Cheesecakes Low Fat Cookies Low Fat Desserts Low Fat Fish & Seafood Low Fat Meats Low Fat Pasta Low Fat Pies Low Fat Salads Low Fat Sandwiches Low Fat Sauces & Condiments Low Fat Sides Low Fat Soups Low Fat Vegetarian Baker's Dozen Taste of Home Recipe Book Bon Appetit Cookbook Blacktie Cookbook Buster Cook Book Cookbook USA Cook Book Cook Book Sara's Cookbook Sara's Cookbook Appetizers and Dips Poultry recipes Diabetic recipes Holiday recipes Miscellaneous recipes 110 recipes 1986 Usenet cookbook 2900 recipes Cyberrealm recipes Great sysops of world Specialty recipes Ceideburg recipes Cheese recipes Chili recipes Fruits recipes Garlic recipes Great chefs of NY Londontowne recipes Raisins recipes Recipes for kids US Food Vegetarian recipes Bread recipes Drinks Meat Dishes Brisket recipes Caribou recipes Chicken recipes Filet mignons recipes Pork recipes Swordfish recipes Turkey recipes Pasta recipes Uncategorized recipes Ethnic recipes Canada recipes English recipes Ethiopia recipes Germany recipes Greece recipes Mexican recipes Philippines recipes Welsh recipes Microwave recipes Soups recipes Vegetable recipes Asparagus recipes Barley recipes Brown rice recipes Lentil recipes Mushrooms recipes Salads recipes Wild rice Desserts recipes Cakes recipes Chocolate recipes Cookies recipes Ice cream recipes