+ Reply to Thread
Results 1 to 2 of 2

Thread: Store a Value every minute from a cell that updates via DDE

  1. #1
    Registered User
    Join Date
    04-20-2010
    Location
    Charlotte, NC
    MS-Off Ver
    Excel 2007
    Posts
    4

    Store a Value every minute from a cell that updates via DDE

    So I have a cell on my worksheet, B277, that updates in realtime with the profit from a stock system. It updates several times a second, but I would like to write to another sheet in the same book the time starting at 9:31am to 4:00pm this value every minute. So the A column will have times, 9:31, 9:32, etc, and the B column the value of this dynamically updating cell at that time. Does anyone know how to do this in a simple manner with VBA macro?

  2. #2
    Forum Moderator Leith Ross's Avatar
    Join Date
    01-15-2005
    Location
    San Francisco, Ca
    MS-Off Ver
    2000, 2003, & read 2007
    Posts
    15,979

    Re: Store a Value every minute from a cell that updates via DDE

    Hello vt2009.

    This macro will Take the value from "B277" on "Sheet1" and copy it to "Sheet2" in column "B" with the time in column "A". Once the macro is started it will run until 4:31 PM.
    Sub DataLogger()
        
      Dim CurrentTime As Double
      Dim DstWks As Worksheet
      Dim NextRow As Range
      Dim Rng As Range
      Dim RngEnd As Range
      Dim SrcWks As Worksheet
      
        Set SrcWks = Worksheets("Sheet1")
        Set DstWks = Worksheets("Sheet2")
        
        Set Rng = DstWks.Range("A1")
        Set RngEnd = DstWks.Cells(Rows.Count, Rng.Column).End(xlUp)
        Set NextRow = RngEnd.Offset(1, 0)
        
          CurrentTime = TimeValue(Now())
          
          If CurrentTime >= TimeSerial(9, 31, 0) And CurrentTime <= TimeSerial(16, 30, 0) Then
             NextRow.Cells(1, 1) = Format(CurrentTime, "hh:mm AMPM")
             NextRow.Cells(1, 2) = SrcWks.Range("B277").Value
          Else
             On Error Resume Next
             Application.OnTime Now(), "DataLogger", , False
             Exit Sub
          End If
          
        Application.OnTime Now + TimeValue("00:01:00"), "DataLogger", , True
        
    End Sub
    Adding the Macro
    1. Copy the macro above pressing the keys CTRL+C
    2. Open your workbook
    3. Press the keys ALT+F11 to open the Visual Basic Editor
    4. Press the keys ALT+I to activate the Insert menu
    5. Press M to insert a Standard Module
    6. Paste the code by pressing the keys CTRL+V
    7. Make any custom changes to the macro if needed at this time.
    8. Save the Macro by pressing the keys CTRL+S
    9. Press the keys ALT+Q to exit the Editor, and return to Excel.

    To Run the Macro...
    To run the macro from Excel, open the workbook, and press ALT+F8 to display the Run Macro Dialog. Double Click the macro's name to Run it.
    Sincerely,
    Leith Ross

    Remember To Do the Following....

    1. Use code tags. Place [CODE] before the first line of code and [/CODE] after the last line of code.
    2. Thank those who have helped you by clicking the Star below the post.
    3. Please mark your post [SOLVED] if it has been answered satisfactorily.


    Old Scottish Proverb...
    Luathaid gu deanamh maille! (Rushing causes delays!)

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.2.0