Question

Tricky Math and VB Code Problem

Asked by: Debsyl99

Hi
I don't know if there's a way around this but I lack the math and vba skill to sort it out.
Basically, the chart in a worksheet (it's not really a chart - it just looks a bit like one) looks like this

http://www.ghost-watch.co.uk/riskmap3.html

As you can see - with the help of a couple of experts from here I've got a button that run a macro that checks the values of probability and impact (the multiplication of which = gross risk) and puts the corresponding risk code for that row in the correct cell in the chart. This code works a treat, and is as follows:
Sub EnterRiskD()

    Dim O As Range
    Dim cell As Range
    Dim P As Range
    Dim I As Range
    Dim R As Range

    Range("ResultsD").ClearContents
    For Each cell In Range("PTableD")
        Set P = cell
        Set I = cell.Offset(0, 1)
        Set R = cell.Offset(0, -2)
        If P.Value <> "" And I.Value <> "" Then
       
        Set O = Range("ResultsD").Cells(1, 1).Offset(6 - I.Value, P.Value - 1)

         If O.Value = "" Then
            O.Value = R.Value
        Else
            O.Value = O.Value & "," & R.Value
        End If

        End If

    Next cell

End Sub

The range ResultsD is all the cells that comprise the coloured chart at the top ie from C5 over to H10. The range PTableD is from E16 down - ie more cells than I'll need.

I've now been asked to actually chart the net risk intead - given that when charting say a row that's
Risk Code - 10
Probability - 6
Impact - 6
Gross Risk - 36
Net Risk - 20
My code will happily put Risk Code 10 -in cell H5, when it would need to go in E5 - which is the only cell with impact value of 6 that could hold a value of 20. The number of management controls is 16.

The relationship between Gross Risk and Net Risk is down to the number of management controls in place which arent listed here but this could be any number between 1 and 36. The number of management controls is subtracted from gross risk to produce a value for net risk.

If you understand this so far then thanks for sticking with me. Can any of you maths&vba geniuses come up with a way of charting net risk using a macro and command button? I'm completely stumped. I've awarded the maximum but would quite happily award 20,000 points if I could. Please ask anything you need to know,
Thanks
Deb :))

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2006-09-22 at 03:52:24ID21999022
Tags

vb

Topic

Microsoft Excel Spreadsheet Software

Participating Experts
2
Points
500
Comments
11

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. MATH
    OK, I KNOW THIS ISN'T THE RIGHT PLACE, BUT WHAT THE HECK. FOR ALL OF YOU MATH PEOPLE OUT THERE, I NEED A LIST OF MATH WEBSITES. PREFERABLY, I NEED PLACES THAT HAVE LIKE PRACTICE WORKSHEETS ABOUT CALCULATOR APPLICATIONS, GENERAL MATH, MENTAL MATH, AND GENERAL SCIENCE. YES, Y...
  2. Excel math in VBA
    I have an excel spreadsheet with some data that looks like ... Month Year Job Category Start End Lost January 2004 A 10 9 1 January 2004 B 15 13 2 January 2004 C 20 17 3 February 2004 A 9 10 0 February 2004 B ...
  3. Excel Math
    Hi: I have a table on excel looks like: Date Product Profit ----- --------- ---- 8/1 P1 100 8/2 P1 30 8/3 P1 -10 8/1 P2 80 8/2 P2 11 8/3 P2 3 8/1 P3 25 8/2 P3 -5 8/3 ...
  4. math
    From a list with subtotals how do I add the subtotals?
  5. Basic math in VBA
    I have some math that I would like to do in VBA that uses conditional statements as follows: If B39 => 65 and <100 then B42=(((B32-1)*C32*D32)+((B33-1)*C33*D33)+((B34-1)*C34*D34)+((B35-1)*C35*D35)+((B36-1)*C36*D36)) D42=B42*C42 Else B39 => 101 and <224 then B42=(...

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: patrickabPosted on 2006-09-22 at 04:53:29ID: 17576820

Deb,

Could you post a link to your actual file (cleaned of sensitive data of course).

Thanks

Patrick

 

by: Debsyl99Posted on 2006-09-22 at 05:35:40ID: 17577033

Hi
Took a bit to clean it up but here you go
http://www.ghost-watch.co.uk/RiskEx.xls
Thanks for looking at this
Deb :))

 

by: roryaPosted on 2006-09-22 at 06:24:29ID: 17577311

Deb,
I'm confused! (no change there)
Your current code simply plots Impact against Probability (because Gross Risk = I * P). What is the basis for calculating that a net risk of 20 belongs in E5? Do you always keep the impact as listed in the row, or always keep the probability?
Regards,
Rory

 

by: Debsyl99Posted on 2006-09-22 at 06:54:36ID: 17577552

There's the rub - actually formulating it - I can't figure out a mathematical relationship for what I've been asked to do - and was wondering if anyone else can, or if indeed one exists that we can use in vba code to plot these values.
A net risk of 20 means that in terms of what we're doing our probability has reduced - but the impact stays the same as we've got five measures in place. (not my idea to calculate it this way)

So if the original values were
x (probability) = 6
y (impact) = 6
Then our gross risk is 36 (x*y). But we've been busy and have got 14 management controls in place and my boss wants this to drop the gross risk by 14. So, we've now got a value of 20. If impact (ie the way it affects us if this risk happens stays the same) then because we've got controls in place the probability of the risk happens reduces.
So which box does a value of 20 go into if impact stays at value 6? Well E5 would hold the value of 20 as it's range of value for y=6 is 18-23  as F5's min value at y=6 is 24. The value of probability at this point flies out of the window (I'm really not sure that it should).

I guess this only partially goes in this TA - Hope this explains a bit better. I'm off to go look at this risk model myself.

 

by: roryaPosted on 2006-09-22 at 06:58:11ID: 17577586

That's pretty much what I thought - I think this does what you just described (you might be better off with an actual XY scatter plot though!):

Sub EnterRiskF()

    Dim O As Range
    Dim cell As Range
    Dim lngProb As Long, lngImpact As Long, lngRiskNo As Long, lngNetRisk As Long

    Range("ResultsF").ClearContents
    For Each cell In Range("PTableF")
        lngProb = cell.Value
        lngImpact = cell.Offset(0, 1).Value
        lngRiskNo = cell.Offset(0, -2).Value
        lngNetRisk = cell.Offset(0, 3).Value
        If lngProb <> 0 And lngImpact <> 0 Then
            Set O = Range("ResultsF").Cells(1, 1).Offset(6 - lngImpact, (lngNetRisk \ lngImpact) - 1)
            If O.Value = "" Then
                O.Value = lngRiskNo
            Else
                O.Value = O.Value & "," & lngRiskNo
            End If
        End If
    Next cell
End Sub


HTH
Rory

 

by: Debsyl99Posted on 2006-09-22 at 07:20:44ID: 17577741

Hi rorya
Thanks for that - it does work but doesn't quite - but the logic we're trying to apply to this  doesn't really work either as the value of probability in terms of the plot doesn't always change if you just then take the net risk and try to figure out where it should go!  
Have now asked my boss to come up with a formula that works consistently!
Could you explain to me how you came up with that formula and what your logic is?
ie this bit - Set O = Range("ResultsF").Cells(1, 1).Offset(6 - lngImpact, (lngNetRisk \ lngImpact) - 1)
The rest I understand.
(I've spent so long looking at this database and spreadsheet now my brain's packed in and gone home)
Thanks so much
Deb :))

 

by: roryaPosted on 2006-09-22 at 07:25:56ID: 17577786

The key bit is that you take the net risk number and divide it by the Impact, but using integer division (hence the use of \ rather than / ) so it returns the highest whole number of times that Impact goes into Net Risk. The rest is the same as your original code in that it then offsets from the top left cell of the "graph".
Regards,
Rory

 

by: Debsyl99Posted on 2006-09-22 at 07:30:22ID: 17577824

Right - I'm with you - quite ingenius, thanks very much!
All the best
Deb :))

 

by: patrickabPosted on 2006-09-22 at 08:19:56ID: 17578205

Deb,

Got it thanks. Am looking at it now.

Patrick

 

by: patrickabPosted on 2006-09-22 at 08:25:45ID: 17578264

Oops - been too busy to look at it before now. Please you've got it solved. Patrick

 

by: Debsyl99Posted on 2006-09-22 at 08:26:39ID: 17578273

Thanks for looking - rorya was pretty quick :)

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...