• Have Excel Read A Range Of Data To You

    Introduction
    When keying in large amounts of data, it can be helpful to have Excel read the input back to you... either as you go, or after you have finished. In either case, this lets you focus on reading the numbers from the page, comparing what you have typed to the original values.

    This article covers both scenarios individually.

    Macro Weaknesses
    • The speech application reads information back phonetically. So if you are concerned about having names or words actually pronounced correctly, you may have to modify them a bit in the text.
    • The speech application reads quickly enough, but there is a noticeable delay between when the speech ends and when text will actually start registering in the cell. It may not be a good idea to activate immediate read-back if you are a quick typer.

    Versions Tested:
    These macros have been tested with Excel 2007, but should also work in Excel 97 through 2003 without any modifications.

    Read back your input as you type
    The two macros below will read back the input as you type information in the sheet.

    Read back any cell on the sheet as data is entered
    Place the following macro in the worksheet code module:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Author       : Ken Puls (www.excelguru.ca)
    'Macro Purpose: Read aloud any values entered into the worksheet
        Application.Speech.Speak Target.Value
    End Sub
    Read back cells within a given range on a worksheet as data is entered
    I find it easiest to create a named range called "ReadToMe" that encompasses the range of data that you want monitored. Once you've done that, then the code below goes into the worksheet code module:

    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
    'Author       : Ken Puls (www.excelguru.ca)
    'Macro Purpose: Read aloud value any values entered into the named range
        If Not Intersect(Worksheets("Sheet1").Range("ReadToMe"), Target) Is Nothing Then
            Application.Speech.Speak Target.Value
        End If
    End Sub
    Read back your input from a range
    The routines below will read back the data from a range of completed data. Each of the routines goes in a standard module.

    Read back each cell in the selected area
    Code:
    Sub ReadToMe()
    'Author       : Ken Puls (www.excelguru.ca)
    'Macro Purpose: Read each cell in the selection aloud
        Dim cl As Range
        For Each cl In Selection
            Application.Speech.Speak cl.Value
        Next cl
    End Sub
    Read back each cell in a named range
    Code:
    Sub ReadNamedRange()
    'Author       : Ken Puls (www.excelguru.ca)
    'Macro Purpose: Read each cell in the range aloud
        Dim rng As Range
        Dim cl As Range
        Set rng = Worksheets("Sheet1").Range("ReadToMe")
        For Each cl In rng
            Application.Speech.Speak cl.Value
        Next cl
    End Sub

     

    I'm afraid that you must be logged in to comment or leave a testimonial. I wish it could be otherwise, but I'm trying to keep my site spam free for everyone's benefit. If you don't yet have an account it's completely free to sign up, and a very quick process. Simply click here to Register. Not only can you post a comment here, but it gives you full access to posts questions in our forum as well!

     

    If you already have an account, and just haven't logged in yet, what are you waiting for? Login Now!

  • MVP Logo
  • Recent Forum Posts

    p45cal

    Need help with total monthly hours

    Enter times as follows: If it's 2:05 in the afternoon enter as 2:05 PM or 14:05.
    The attached should handle times across midnight, but check....

    p45cal Yesterday, 11:22 PM Go to last post
    dcope7

    Need help with total monthly hours

    I took the 12 out and if you key in 0:30 it row 12 it still subtracts from row 16 which is what it is supposed to do. I've tried every format I could...

    dcope7 Yesterday, 07:05 PM Go to last post
    p45cal

    Need help with total monthly hours

    It does not! it adds the value 12 and doesn't even look at row 12! In this context it adds 12 days (=288 hours). Barmy.
    Until you get formulae right...

    p45cal Yesterday, 06:02 PM Go to last post
    dcope7

    Need help with total monthly hours

    Ok row 16 calculates rows 11 and 15, plus it subtracts row 12 and yes I know I have it adding but if you actually add 0:30 in row 12 it will subtract...

    dcope7 Yesterday, 05:23 PM Go to last post
    p45cal

    Need help with total monthly hours

    I'm talking about row 16, NOT ROW 12!
    The 12 is a hard-coded 12 in the formula, and it adds (not subtracts) 12. The formula in cell D16 (yes, the...

    p45cal Yesterday, 05:10 PM Go to last post