Solved

if then statement in vba doesn't respond with excel code

Posted on 2012-04-05
4
332 Views
Last Modified: 2012-04-07
The formula in the excel sheets   cell F5=IF('Bun Mixers'!$D$9>0,IF('Bun Mixers'!$D$10>(VLOOKUP('Bun Mixers'!$D$9,'Bun Dough Recipe Information'!$A$2:$D$62,4)+(SUM(PRODUCT(VLOOKUP('Bun Mixers'!$D$9,'Bun Dough Recipe Information'!$A$2:$D$62,4),5%)))),"Actual mix time is 5% OVER setpoint",""))
 This formula works well in the excel spread sheet.  
I want to pick up this cell if it is true in a report using vba code.

the code is as follows:
Sub Bun_Mixers_Update_Data_Report()
'updating Bun Mixers Data
If Not (IsNull(Worksheets("Bun Mixers").Range("F5"))) Or Not (IsNull(Worksheets("Bun Mixers").Range("F6"))) Then

Worksheets("Bun Report").Range("E1:F8").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Worksheets("Bun Mixers").Range("E2:F9").Copy
    Worksheets("Bun Report").Range("E1").PasteSpecial xlPasteValues
    Worksheets("Bun Report").Range("E9:F16").Copy
    Worksheets("Bun Report").Range("E1:F8").PasteSpecial xlPasteFormats
    
With Worksheets("Bun Report").Range("F1")
    .NumberFormat = "m/d/yyy h:mm"
    .Interior.ColorIndex = 6
    .Interior.Pattern = xlSolid
End With

With Worksheets("Bun Report").Range("E1")
    .Font.Bold = True
    .Interior.ColorIndex = 6
    .Interior.Pattern = xlSolid
End With

Worksheets("Bun Report").Range("F9").HorizontalAlignment = xlCenterAcrossSelection
Worksheets("Bun Report").Range("F9").NumberFormat = "0.00"

End If

Open in new window


What will work in this code to get an either or situation?

Thanks,
Angie
0
Comment
Question by:Angiehncock
  • 2
4 Comments
 
LVL 3

Expert Comment

by:DaFranker
ID: 37811579
The condition in your initial IF statement checks if the cell range is null. It will never be, as it is a range reference, and the cell also has a formula, which means it isn't 'empty' either.

Assuming the cells are using standard formatting, you could check for:
Worksheets("Bun Mixers").Range("F5").Text = "" Or Worksheets("Bun Mixers").Range("F6").Text = ""

Open in new window

0
 

Author Comment

by:Angiehncock
ID: 37813855
Unforntuately this gives me a type mismatch error '13'.  I also tried If Not(Is Empty,  this gave me everything or nothing depending on whether I used Not.
0
 
LVL 41

Accepted Solution

by:
dlmille earned 500 total points
ID: 37814685
Since you can already do error checking in the worksheet formula such that you get a text string on the TRUE and null string on the FALSE/error, then you can test for NOT vbNullString.  I didn't rewrite your formula to do error checking.  Let's just see if this modification in the VBA works for you.

Why not just change line 4 to:

If Worksheets("Bun Mixers").Range("F5").Value <> vbNullString Or Worksheets("Bun Mixers").Range("F6").Value <> vbNullString Then

Dave
0
 

Author Closing Comment

by:Angiehncock
ID: 37818899
This works well provided that the formula is F5 is constructed properly.   Thanks for your help!
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now