What is so special about Go To Special? [15 tips]

Share

Facebook
Twitter
LinkedIn

This article is written by Myles Arnott from Excel Audit

I briefly covered Excel’s Go To Special function in the Managing Spreadsheet Risk series of articles and both Chandoo and I felt that it deserved a post all of its own.

What is Go To Special?

Go To Special is a tool within Microsoft Excel that enables you to quickly select cells of a specified type within your Excel worksheet. Once you get to grips with this function and what it can be used for you will wonder how you ever lived without it.

Where do I find Go To Special?

Shortcut: F5 or CTRL + G and then click on Special…
2003: Edit > Go To
2007 & 2010:Home > Find & Select > Go To Special on the Ribbon

(Note: a cut down selection of the most useful options in Go To Special can be selected directly under Find & Select on the Ribbon in 2007 & 2010.)

Lets look at Go To Special in action

Firstly download this workbook. This is more or less the same workbook that we used in the Managing Spreadsheet Risk series, modified slightly to allow us to cover all elements of the Go To Special function. (Note that it therefore includes a lot of errors)

Here are the options on the Go To Special dialogue box:

Excel Go to Special - What is it and how to use it?

Lets run through each of the Go to special options.

Comments

Action: Selects all cells with comments

Benefit: A quick way of finding all cells with comments, particularly useful if you want to clear all comments from your worksheet

 

Constants

Action: Selects all cells containing constants

Options:

Numbers: Selects all cells with constants that are numbers

Text: Selects all cells with constants that are text

Logicals: Selects all cells with constants that are logicals (TRUE or FALSE)

Benefit: The number constants in your spreadsheet should all be inputs. Highlighting all constants is a great way of checking the structure of your spreadsheet. I normally format inputs with a white background and blue font.

 

A great tool for auditing – select all constants and change the fill colour. This instantly gives you visibility of your model inputs and flags any inconsistencies.

Formulas

Action: Selects all cells containing formulas

Options:

Numbers:Selects all cells with formulas that return numbers

Text: Selects all cells with formulas that return text

Logicals: Selects all cells with formulas that return logicals (TRUE or FALSE)

Benefit: Highlighting all of the formulas within your spreadsheet is a great way of checking the structure and consistency of your spreadsheet.

Blanks

Action: Selects all blank cells

Benefit: A quick way to select all blank cells. This is useful if you want to quickly format all blank cells or as a way of identifying cells that look blank but actually contain a constant or formula (i.e. with white on white formatting).

 

(Related: Fill Blank Cells )

Current region

Action: Selects the current region

Comment: I would recommend using the shortcut CTRL + * instead

Current array

Action: Selects the entire array if the active cell is within an array

Comment: I have never used this option but would be very interested to hear if anyone has.

Objects

Action: Selects all objects (shapes, images, charts etc)

Benefit: A simple way to select all objects. This could be useful if you wanted to quickly delete all objects in the worksheet.

Row differences

Action:

Single row: Selects the cells that are different from the active cell within the selected row

Multiple rows: The comparison is made for each row independently. The cell used for comparison for each row is the cell in the same column as the active cell.

Benefit: This is a very useful auditing tool for highlighting inconsistent formulas in a row.

 

It also offers a quick and easy way to spot differences across multiple rows.

(Note: You can change the active cell within a selected row by pressing enter)

 

Column differences

Action:

Single column: Selects the cells that are different from the active cell within the selected column

Multiple columns: The comparison is made for each column independently. The cell used for comparison for each column is the cell in the same row as the active cell.

Benefit: This is a very useful auditing tool for highlighting inconsistent formulas in a column. It also offers a quick and easy way to spot differences across multiple columns.

Precedents

Action: Selects the cells that feed into the selected cell(s)

Options:

Direct only: First level precedent only

All levels: All levels of cell precedents

Benefit: Provides an alternative to Trace Precedents in the formula auditing bar. Personally I prefer using this tool to select and then colour-fill the precedent cells as it allows you to select the precedents for a range of cells rather than just one. I also find that the arrows in Trace Precedents can get a little messy.

Dependents

Action: Selects the cells that the selected cell(s) feed into

Options:

Direct only: First level dependents only

All levels: All levels of cell dependents

Benefit: As above this provides an alternative to Trace Dependents in the formula auditing bar.

Last cell

Action: Selects the last used cell within your worksheet (containing data or formatting)

Benefit: A quick way to locate your last cell. This is a very effective way of identifying the range of cells used of the worksheet.

 

If your simple spreadsheet suddenly becomes very large in MB terms this can be due to Excel incorrectly thinking that you are using a lot more of the cells than you actually are . A good indicator of this is that the right hand scroll bar slider becomes very small. Using Go To Special Last cell lets you quickly identify the last cell Excel thinks you are using.

Visible cells only

Action: Selects cells that are not hidden (& therefore are visible)

Benefit: Useful if you only want to change the non-hidden cells and leave the hidden cells unchanged

Conditional formats

Action: Selects all of the cells with conditional formatting applied

Options:

All: Selects all cells with conditional formatting applied

Same: Selects all cells that have the same conditional formatting as is applied to the active cell

Benefit: An easy way to quickly identify all of the cells with conditional formatting applied to them. A useful tool for understanding the formatting applied to a spreadsheet.

You need to be aware that, depending on the conditional formatting set, you may not be able to highlight the cells using a fill colour as the conditional formatting may override it.

Comment: The manage rules option within the conditional formatting menu also enables you to identify cells with conditional formatting applied.

Data validation

Action: Selects all of the cells with data validation applied

Options:

All: Selects all cells with data validation applied

Same: Selects all cells that have the same data validation as is applied to the active cell

Benefit: An easy way to quickly identify all of the cells with data validation applied to them. This is particularly useful from an auditing perspective or if you want to clear the validations in these cells.

Some considerations for Go To Special

  • Go To Special only selects cells in the current worksheet rather than the whole workbook.
  • Go To Special searches within the selected range, if you want to select the entire worksheet ensure that only one cell is selected

Putting this in to practice

In order to give you some examples of how to use the Go To Special tools covered above I have put together a list of actions for you to run over the attached spreadsheet. Have a play and see what you discover:

(note that the action “Select cell A1” is simply to clear the current range selected. Failing to do this will restrict the new search to the currently selected range)

1) Look for cells containing data validation and conditional formatting

Select cell A1, Go To Special, Data validation (All)

Select cell A1, Go To Special, Conditional formatting (All)

2) Check the structure of the spreadsheet

Select cell A1, Go To Special, Constants ,text, fill the selection in brown

Select cell A1, Go To Special, Constants ,numbers, fill the selection in blue

Select cell A1, Go To Special, Constants ,errors, fill the selection in purple

Select cell A1, Go To Special, Formulas (leave all options ticked), fill the selection in green

Select cell A1, Go To Special, Formulas, errors, fill the selection in red

(Note: any cells with conditional formatting will not be changed by the fill colours above)

I have recorded the above steps into a macro to give you a useful audit macro that could be adapted for future use. Click on the button on the Info tab to run the macro.

See these pages for information on macros.

3) Check the range C9:S9 for any inconsistent formulas

Select the range C9:S9, Go To Special, Row differences, fill the selection in yellow

4) Review the precedents for the formulas in row 25

Select the range C25:S25, Go To Special, Trace Precedents, Direct only

5) See if there are any charts in the spreadsheet

Select cell A1, Go To Special, Objects

6) Find the last cell

Select cell A1, Go To Special, Last cell

Added by Chandoo:

Do you use Go to Special?

I use go to special (both dialog box and keyboard shortcuts) all the time. It is a really easy way to navigate a complex workbook and quickly select what you want. My favorite uses of Go to special are, selecting blank cells, finding data validations, locking formula cells, formatting input cells (constants). To find conditional formatting I usually go to home > conditional formatting > manage rules and see all the formatting rules in current worksheet. For formula auditing I rely on audit toolbar & manual inspection of the workbook.

What about you? Have you used Go to Special? What are your favorite features? Please share using comments.

Thanks to Myles

Many thanks to Myles for compiling all the tips & sharing this with us. If you have enjoyed this article, please say thanks to Myles. You can also reach him at Excel Audit or his linkedin profile.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

53 Responses to “Conditionally play sounds when a cell value changes”

  1. Robert says:

    There is another alternative of doing this quite easily: Yes, Excel is able to talk to you!

    Assume you are having a calculated or otherwise changing value in cell A1 (e.g. =RANDBETWEEN(0,100)), a threshold in cell B1 (e.g. 50) and a text in cell C1 (e.g. "Threshold exceeded").

    Go to the VBA-editor (ALT-F11) and copy the the following procedure into the corresponding sheet:

    Private Sub Worksheet_Calculate()
    If Range("A1").Value > Range("B1").Value Then
    Application.Speech.Speak (Range("C1").Value)
    End If
    End Sub

    Excel will read the text in cell C1, whenever the value in cell A1 is large than the threshold in cell B1. Turn your speakers on and play with cell C1. It sounds a bit funny sometimes, especially when you try to make Excel read texts in other languages than English. But it works...

    • brad says:

      I'm trying to use UDF and the speech aspect. I want a cell to calculate character total and when it reaches a limit it will speak the value. For some reason I can't get any UDF to show up in the list or work. I've tried simple ones such as:

      Function BeepOnce()
      Beep
      End Function

      with: =If (B3>30, BeepOnce(),"") in the cell but it gives errors. Confused.

      When a cel char count reaches 30 and I'm typin gfast, it will report the number.

      Im a blind writer and this would be very helpful. I can't get any to work though. Can't get any UDF to show up anywhere.

  2. Mary says:

    I tried keying in the code exactly as you have:

    Private Sub Worksheet_Calculate()
    If Range("cx15").Value > Range("cy15").Value Then
    Application.Speech.Speak (Range("cz15").Value)
    End If
    End Sub

    When I try to run the condition, I get a compliation error.

    The formula in my excel spreadsheet in cx 15 is: =IF(CO15>120,1,0)
    cy 15 = 0
    cz 15 = "Less than 120 days"

    I'm driving myself crazy - HELP!!

  3. Hui... says:

    @Mary
    The code you supplied and below works as it should in Excel 2007
    ===
    Sub Worksheet_Calculate()
    If Range("CX15").Value > Range("CY15").Value Then
    Application.Speech.Speak (Range("CZ15").Value)
    End If
    End Sub
    ===
    There are 2 reasons it maynot be working
    1. Make sure it is on a Worksheet Object in VBA for the page you are working on not in a general code module
    2. Make sure the " characters are real, often you can copy and paste text from here and although the " mark look ok, they are not the correct characters, If it isn't working retype them all

    • Anil says:

      Hi Hui,

      The SPeech VBA is working...but it reacts to all the changes that is taking place in various cells in the sheet. I need this speech vba to react to only when changes happen in a particular cell (A1) and particular sheet...is there a vba that can help me find a solution. Thanks in advance for your assistance.

  4. Mary says:

    YEAH - thanks so much Hui. I had it in the general code module.
    Another question?
    Can I have this function check a range of cells in Excel?
    The code as it is now is checking cells CX15, CY15 and CZ15
    I need it to check from rows 15 - 45?

  5. Hui... says:

    @Mary
    Sub Worksheet_Calculate()
    Dim myText as String
    For Each c In Range("CX15:CX45")
    If c.Value > c.Offset(0, 1).Value Then
    myText = "Row" + Str(c.Row) + " " + c.Offset(0, 2).Text
    Application.Speech.Speak (myText)
    End If
    Next
    End Sub

  6. Mary says:

    I keyed in the code exactly as above and I get a runtime error 1004 - application defined or object defined error.

    Sub Worksheet_Calculate()
    Dim myText as String
    For Each c In Range(”CX15:CX45?)
    If c.Value > c.Offset(0, 1).Value Then
    myText = “Row” + Str(c.Row) + ” ” + c.Offset(0, 2).Text
    Application.Speech.Speak (myText)
    End If
    Next
    End Sub

    The formula in my excel spreadsheet in cx 15 is: =IF(CO15>120,0,1)
    cy 15 = 0
    cz 15 = “Less than 120 days”

    The code is in a VBA worksheet - any thoughts as to what I'm doing wrong?

  7. Hui... says:

    Mary
    you need to be very careful copying text of the web
    There are times where a character " will copy and look like a " but is in fact not a "
    If you have copied the above go through the code and manually replace all the " characters with a " character

    Also make sure the code is on the code page for the sheet you are working on, not a code generic module page in VBA

  8. Mary says:

    The above string works wonderfully - however, every keystroke in Excel initiates the function. Is there a way I can set it to run on command?

  9. Hui... says:

    Mary
    The following will run whenever there is only a change in the area CX15:CZ45
    .
    Private Sub Worksheet_Change(ByVal Target As Range)

    Dim myText As String
    Dim TR As Integer
    Dim TC As Integer

    TR = Target.Row
    TC = Target.Column

    If TC >= 102 And TC = 15 And TR c.Offset(0, 1).Value Then
    myText = "Row" + Str(c.Row) + " " + c.Offset(0, 2).Text
    Application.Speech.Speak (myText)
    End If
    Next
    End If

    End Sub`

    .
    Otherwise you can go back to the following code and add a Button or a Shape to your worksheet and link the macro to it so that it only runs when you click on it
    .

    Sub Speak()

    Dim myText As String

    For Each c In Range("CX15:CX45")
    If c.Value > c.Offset(0, 1).Value Then
    myText = "Row" + Str(c.Row) + " " + c.Offset(0, 2).Text
    Application.Speech.Speak (myText)
    End If
    Next

    End Sub

  10. Amin says:

    Hey Hui,
    I came across this site by mistake.
    Man this is so COOL.
    Will this also work as

    Column A has all Names, Column B is Blank.
    When a Cell in Column B is not Blank ("") then speak the corresponding name in Column A

    It doesn't make any sense to write multiple if-then statements to make it work.
    I know I caught this few months late, but I could really use this
    Thanks

  11. Hui... says:

    @Amin
    Try the following
    Copy and paste it into a Worksheet Module for the Worksheet in VBA you are working on

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim myText As String
    For Each c In Range("B:B")
    If c.Value <> "" Then
    myText = c.Offset(0, -1).Text
    Application.Speech.Speak (myText)
    End If
    Next
    End Sub

  12. Amin says:

    Hui,
    It works but it repeats all name as:
    Cell A1=John, A2=David, A3=Lisa.
    When Cell B1 is not Blank then is speaks John.
    Next when Cell B2 is not Blank it speaks John and David. Second time it should only speak David (fyi B1 and B2 both are not blank)

    example: I want it to speak when certain individual logs in. But procedure, when someone logs in it speaks all the people who have already logged in.

    how should I change that?

    Thanks for assistance.

  13. Hui... says:

    @Amin
    Try this modification

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then Application.Speech.Speak (Target.Offset(0, -1).Text)
    End Sub

  14. Amin says:

    Thanks Hui that worked perfectly.

    How do I make it work with 4 sets of columns

    Same as before but with 8 columns
    Columns(A,C,E,G) have names.
    Columns(B,D,F,H) are blank to start with.

    I tried to few ideas my way but nothing worked

  15. Hui... says:

    @Amin

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Or _
    Target.Column = 4 Or _
    Target.Column = 6 Or _
    Target.Column = 8 Then _
    Application.Speech.Speak (Target.Offset(0, -1).Text)
    End Sub

  16. Vivekanand TM says:

    I need a Excel Speaking code for the below condition

    If I3 ="Buy Alert" ' If I3 cell has Buy alert Text then, sound should be like " Vivek Buy Alert For Infosys(next cell text) and
    If I3 ="Sell Alert" ' If I3 cell has Buy alert Text then, sound should be like " Vivek Sell Alert For Infosys(next cell text)

    Please help me to fix this in my excel

  17. Peter says:

    This is soo cool. Im looking for a similar thing
    Source B1:B200 have an output in Range C1:C200 every cell in the range C1:C200 checks the condition in D1:D200 and with conditional formating change color when value in C1>D1
    How can I play a standard windows sound when C1>D1 and another sound when C1<D1

  18. viral kadecha says:

    hi hui,
    i am a trader in stock market
    i can export stock rate to excel sheet from my trading software..
     
    is it possible that when stock rate changes the cell speaks means, e.g.( if stock rate is 25 and if it changes to 26 then cell should speak twenty six,if it further changes to 26.50 it speaks twenty six point fifty)
    hope u can understand my problem.
    waiting for your reply

      • viral kadecha says:

        HI
        I HAD A LOOK AT YOUR SUGGESTIONS BUT UNABLE TO UNDERSTAND
        I AM USING OFFICE 2003,
        I TRIED THIS
        """""Assume you are having a calculated or otherwise changing value in cell A1 (e.g. =RANDBETWEEN(0,100)), a threshold in cell B1 (e.g. 50) and a text in cell C1 (e.g. “Threshold exceeded”).
        Go to the VBA-editor (ALT-F11) and copy the the following procedure into the corresponding sheet:
        Private Sub Worksheet_Calculate()
        If Range(“A1?).Value > Range(“B1?).Value Then
        Application.Speech.Speak (Range(“C1?).Value)
        End If
        End Sub""""""
        BUT I DON'T UNDERSTAND WHAT TO CALCULATE IN ("C1")?? WHICH RANGE TO BE GIVEN TO ("A1")
        BASICALLY I DONT GETTING IT PROPER
         
        WHAT I WANT IS IF LAST TRADED PRICE (LTP) IN CELL CHANGES THE EXCEL SHOULD SPEAK THE VALUE WHICH IS IN THE CELL
         
        MEANS IF LTP IS 26.60 AND IF CHANGES TO 26.70 IT SHOULD SPEAK TWENTY SIX POINT SEVENTY AND IF IT CHANGES FURTHER TO 26.80 IT SHOULD SPEAK TWENTY SIX POINT EIGHTY
         
         
        PLEASE HELP ME....

  19. Arindam says:

    I am using the following code for sound. It was working well but has suddenly stopped respondig. Could u help relating to the matter

    Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long

    Function Alarm(Cell, Condition) Dim WAVFile As String Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 On Error GoTo ErrHandler If Evaluate(Cell.Value & Condition) Then WAVFile = ThisWorkbook.Path & "\sound.wav" 'Edit this statement Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME) Alarm = True Exit Function End If ErrHandler: Alarm = False End Function

  20. Elliot says:

    Hey Hui, Great stuff really helpful, Although I am having the same issue as Amin, where any keystroke entered prompts the text to speech. I tried fitting in your fix for Amin but I didn't have success, below is the code I am successfully using, however each keystroke prompts the voice, and the voice lists each cell that qualifies the formula I am using.

    Sub Worksheet_Calculate()
    Dim myText As String
    For Each c In Range("bf4:bf45")
    If c.Value = 1 Then
    myText = c.Offset(0, -57).Text
    Application.Speech.Speak (myText)
    End If
    Next
    End Sub

    I tried
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Then Application.Speech.Speak (Target.Offset(0, -57).Text)
    End Sub

    any Mods to limit the speech to only what was most recently qualified?

    • Hui... says:

      @Elliot

      Try:
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target = 1 And _
      Target.Column = 58 And _
      Target.Row >= 4 And _
      Target.Row <= 45 Then _ Application.Speech.Speak Target.Offset(0, -57).Text End Sub

  21. Elliot says:

    Hi Hui,

    I tried that code
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = 1 And _
    Target.Column = 58 And _
    Target.Row >= 4 And _
    Target.Row

    Thanks

  22. Elliot says:

    Seems like the previous cut off the rest of my message, anyways above code the object module didnt allow me to step inot it, I keep getting a pinging, while on the same object module I inserted the previous code I had running and it allows me to step in! Confusing.

    Thanks.

  23. Elliot says:

    Hey Hui,

    So the code works, I discovered the code does not recognize the column because each cell in the column is an if then formula with a returned value, such as "1" for true "0' for false, it only works when I remove the formula and insert a 1 in a cell, any vba fixes for this, or I can try a temp. workaround.

  24. Elliot says:

    Hey Hui,

    Disregard the above. The code works, however only after I hit enter in the target column, When the column updates by itself the code doesn't fire.

  25. RAJ says:

    Hi Hui,

    Amaze to see all the above information. I hope even I get a solution to my problem.
    I am trying to use this excel as a token machine. I have linked up this token sheet with other sheet which shared by four users. If any off the users changes the token number, it gets change in our main display but the problem it doesnt say the token number. WHAT I EXACTLY WANT IS AS THE VALUE GETS CHANGED IN ANYONE OF THIS SPECIFIED CELLS (B4, B5, B6 & B7 THE EXCEL MUST ANNOUNCE THE NUMBER. For example If in cell B4 the number 7 comes, so the excel should tell " TOKEN NUMBER 7", after that in cell B7 is updated 21, so its should again tell as " TOKEN NUMBER 21"... and so on it should keep doing the same.

    I hope I get my solution at the earliest.

    Thanks
    Raj

  26. nagesh says:

    Dear Sir,
    I read your blog, it's very nice. I am a trader, & need a help from your side.
    If my stock goes below -5.5 % ( column is = L,M,N,O) then it has to automatically change it's color & make a beep sound or alarm. Please write the code for this query.
    Thanks in advance,
    Warm Regards,
    Nagesh

    • Hui... says:

      @Nagesh
      Try the following

      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Value < -0.055 And Target.Column >= 12 And Target.Column <= 15 Then Application.Speech.Speak Target.Text Target.Interior.Color = 123456 'Change to suit End If End Sub

      • nagesh says:

        hi sir,
        i tried your coding today,It works for color and sound didn't come for below -0.055!
        but getting the below error
        Application.Speech.Speak Target.Text ( it's in yellow color in vb code sheet). Also got error like run time error, application defined or object error! I am using ms excel 2003.
        please advice me

        • Hui... says:

          @Nagesh
          That won't work in 2003
          I'll see what options there are tomorrow
          It's sleeping time here

          • nagesh says:

            ok sir,
            See you tommorrow, Sleep tight, sweet dreams, bye
            nagesh

          • Hui... says:

            @Nagesh
            I think the blog software removed some details
            The code as posted was

            Private Sub Worksheet_Change(ByVal Target As Range)
            If Target.Value LTE -0.05 And Target.Column GTE 12 And Target.Column LTE 15 Then
            Application.Speech.Speak Target.Text
            Target.Interior.Color = 123456 'Change to suit
            End If
            End Sub

            Replace GTE with >=
            Replace LTE with <=

  27. nagesh says:

    Hi Hui,
    Thanks for your kind reply. I will try this ..
    Regards,
    nagesh

  28. Nagesh says:

    Hi Hui Sir,
    I tried your updated coding, again it's showing same error. Sir, i will make you things clear as follows"
    1) I am using MS EXCEL 2003 & It's a part of MS OFFICE STANDARD EDITION 2003.
    2) I'm new to this excel, I need formula for the excel and coding for vb .
    3) Sir, Below is the Data needs to play sound when the Number comes down -5.5%. It's in L,M,N,O, P Column of Excel Respecitively!
    %Total 1 = L Column; Optional = M Column; Calc=N Column, Final=O Column, Additn = P Column in Excel Respectively!

    %Total 1 Optional Calc Final Additn
    1.0664851 -5.567 -0.499205809 -0.198547765 1.76
    4.44350551 -0.1267561 -0.348579275 -0.237667688 2.66
    -2.2927545 -2.651762402 -2.472258486 -2.562010444 -2.24
    1.194029 0.608955224 0 0.304477612 0.1

    Sir please advice me, It's very impt to me to play sound when it comes down -5.5 %, Once it's done, i'll be very happy.
    Also, i want to learn online excel vb from your end if you providing excel training, please tell me fees structure and discounts for the excel training.
    Expecting Solutions for my queries and hope you solve.
    Thanks for your kind reply for my previous mails.
    Warm Regards,
    Nagesh

  29. Nagesh says:

    Hi Hui Sir,
    The code you adviced me is :
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = 12 And Target.Column < = 15 Then
    Application.Speech.Speak Target.Text
    Target.Interior.Color = 123456 'Change to suit
    End If
    End Sub

    It's working fine, but only problem is :-
    1) It's speaking for all numbers like, -1 %, -2 %, -5%.etc.., I need only for -5.5%.
    2) In Cell "A" , I HAVE LIST OF MEDICINES like "Ranbaxy - A2 ", "Cipla - A3", "Micro Labs - A4" upto "A 168". If the data in "L,M,N,0,P" Column comes down in b/w -5.5 % to -20.5 % then , Ms Excel 2003 has to Say: Ranbaxy -5.5 %, Cipla - 6.6 %, Micro Labs - -10 % etc..

    • Hui... says:

      @Nagesh

      The code I posted is:
      Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Value LTE -0.05 And Target.Column GTE 12 And Target.Column LTE 15 Then
      Application.Speech.Speak Target.Text
      Target.Interior.Color = 123456 ‘Change to suit
      End If
      End Sub

      Replace GTE with >=
      Replace LTE with <= If this isn't clear, please post a file in the Forums http://chandoo.org/forum/

      • Nagesh says:

        Hi Hui Sir,

        i'm trying to post file in the forum : http://chandoo.org/forum/, it's not taking there. Please Help me the below, Please sir, please
        The code you adviced me is :
        Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Value = 12 And Target.Column < = 15 Then
        Application.Speech.Speak Target.Text
        Target.Interior.Color = 123456 'Change to suit
        End If
        End Sub

        It's working fine, but only problem is :-
        1) It's speaking for all numbers like, -1 %, -2 %, -5%.etc.., I need only for -5.5% to -20.5%
        2) In Cell "A" , I HAVE LIST OF MEDICINES like "Ranbaxy – A2 ", "Cipla – A3", "Micro Labs – A4" upto "A 168". If the data in "L,M,N,0,P" Column comes down in b/w -5.5 % to -20.5 % then , Ms Excel 2003 has to Say: Ranbaxy -5.5 %, Cipla – 6.6 %, Micro Labs – -10 % etc..

        Requesting last last help from your end, my work almost done with your valuable time and advice. Please help me sir,
        nagesh

        • Hui... says:

          @Nagesh

          This is the code, I have posted 3 times

          Private Sub Worksheet_Change(ByVal Target As Range)
          If Target.Value LTE -0.05 And Target.Column GTE 12 And Target.Column LTE 15 Then
          Application.Speech.Speak Target.Text
          Target.Interior.Color = 123456 ‘Change to suit
          End If
          End Sub

          Replace GTE with >=
          Replace LTE with <= If the Forum isn't working your file is too large Compress it or save to a dropbox etc style account or email me directly, click on Hui and email is at bottom of the page

  30. Victor says:

    Here is a copy of part of my Dash Board:

    Alert Summary

    EM 22.8%
    FIN 22.1%
    ENERGY 18.1%
    SPX 24.0%
    NDX 27.0%
    RUSSELL 23.5%

    Each of the percentages is a link to a separate page in the work book. For example, the 22.8% is actually =+EM!D10 which is the answer to the following formula =((ABS(G7/((F7+F6)/2))))

    I want some sound alert that will tell me when the value is greater than 35%. Since the spread sheet dlynamically update every second, I would assume that a ding ding ding repeating would work fine.

    Can you give me a step by step on creating an appropriate macro that I can run when I am afc. I have no programming skills but can cut and paste or retype with the best of them 😉

    Thanks in advance for any help you can give me. BTW the range on the Dash board that I want to cover is b10...b15

  31. mark swan says:

    Dear Huai,

    is there a way to have a vba code to make a sound alert dynamically when a condition is met without running the module or have a button? I tried the options above and beep now commands but no luck.

  32. Ian Wardell says:

    More explicit instruction are required. Where exactly does one put:

    Function beepNow()
    Beep
    End Function

    ??

  33. Nazmul Hossain says:

    Dear Sir (Hui),
    Pls help me to provide such a excelmacro code so that I can easily heard a specified Sound of the text which I want when the criteria or the condition happened.It may be Hello/Congratulations etc.
    Suppose A120=SUM(A5:A119) &
    D120=SUM(D5:D119)
    G120=A120-D120
    Condition:IF(G120=0,"hello"/"congratulations "

    Otherwise "Sorry" / "be patience"
    Please help if possible.

  34. Zain says:

    Hi,

    I need a code for the cells speak
    auto matically with a regular interval of 10 min.means after every 10 min my cells speak.

  35. Nishant says:

    Hi Hui,

    Hope you are in good health and doing well. I was surfing the internet for some excel solutions for my workbook and I came across some very good solutions by you. Hence, I am writing to you to get some insights to my problem

    So here it goes,
    I have a software which gives me live stock prices in excel and I have added all my analysis to that file so that I can get Long and Short Calls for the scrips I analyze. Now, there are around 200 companies that I analyse and the calls appear as the stock price change and reach my buying or selling levels.

    I need my excel to say the companies name which is in cell C2 when "Long" / "Short" text appears in my cell B2 which has my analysis formulas. Current market price is in A2

    Also I need this for a range as I mentioned I have 200 companies.

    I really hope you can help me with this.

    This is what I have tried uptill now, but this works for one cell and not a range

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$2" Then
    If Range("B2").Value = "50" Then
    Application.Speech.Speak (Range("C3").Value)
    End If
    End If
    End Sub

    Please Find me a Solution

    Thank You,

    Best Regards,
    Nishant Shah