Changes

From Fellrnr.com, Running tips
Jump to: navigation, search

Excel Macros for pace

268 bytes added, 11:11, 3 January 2012
m
no edit summary
Excel Macros are very powerful, but can be dangerous. Never execute macros from an untrusted source or that you have not reviewed the code! This is page is intended for the technically proficient ;}
http://jfsavage==Installation==These instructions for installing on Excel 2007.smugmug.com/photos/783147707_je8uM-O.jpg 1 Open Excel 2 If you don’t see a tab marked ‘developer’
http[[File://jfsavage.smugmug.com/photos/783147634_9aYsj783147705 JdKMk-O.jpg]]
http://jfsavage2.smugmug.com/photos/783141751_GX4AM-O.jpg1 Click on the round ‘window’ button in the very top left of the Excel window
http[[File://jfsavage.smugmug.com/photos/783147754_WpFmi783147634 9aYsj-O.jpg]]
http://jfsavage2.smugmug.com/photos/783147770_SoM3Q-O.jpg2 Select ‘Excel Options’
http[[File://jfsavage.smugmug.com/photos/783147748_YD3UM783147707 je8uM-O.jpg]]
http://jfsavage2.smugmug.com/photos/783147761_e6qYL-O.jpg3 Click on the ‘Popular’ and select the check box ‘Show developer tab in the Ribbon’
[[File:783147634 9aYsj-O.jpg]]
http://jfsavage2.smugmug.com/photos/783147705_JdKMk-O.jpg4 Click OK
3 Click on the developer tab in the ribbon
http[[File://jfsavage.smugmug.com/photos/783147634_9aYsj783147705 JdKMk-O.jpg]]
4 Click on the ‘Visual Basic’ button
http[[File://jfsavage.smugmug.com/photos/783147695_Yx9qc783147714 FvrH7-O.jpg]]
http://jfsavage.smugmug.com/photos/783147707_je8uM-O.jpg5 Right click on the VBAProject, select insert, then module
http[[File://jfsavage.smugmug.com/photos/783147714_FvrH7783141751 GX4AM-O.jpg]]
6 Copy and paste the macros shown below into the text window. You can copy one, some or all of the macros.
==Installation==These instructions for installing on Excel 2007[[File:783147748 YD3UM-O.jpg]]# Open Excel# If you don’t see a tab marked ‘developer’ ## Click on the round ‘window’ button in the very top left of the Excel window and select ‘Excel Options’## Click on the ‘Popular’ tab## Select the check box ‘Show developer tab in the Ribbon’## Click OK# Click on the developer tab in the ribbon# Click on the ‘Visual Basic’ button # Paste the macro shown below into the text window# 7 Click on File, then ‘Close and return to Microsoft Excel’
==Usage==
Excel will interpret a pace as a time by default, so entering 7:40 00 will become 7:4000:00 AM, which will mess things up. Enter any paces with a preceding quotation mark such as ‘7:40 00 to make it textual.  [[File:783147754 WpFmi-O.jpg]]  To convert a pace to the number of seconds use =HMS2S(cell), such as =HMS2S(B1B2). To convert seconds to a pace use S2MS for minutes:seconds, or S2HMS for hours:minutes:seconds.  If you wanted to add five seconds per mile, use =S2MS(HMS2S(b1B2)+5) [[File:783147770 SoM3Q-O.jpg]] ==Saving a file with Macros==To save an excel file that contains macros, you have to save it as a '.xslm' file.  [[File:786106685 MJMUP-O.jpg]] ==Loading a file containing macros==By default, macros are disabled when you load an excel file. You will see a security warning with an options box. To enable the macros, click on 'options' and select 'enable this content'. If you do not enable the content, the macros will result in an Excel error '#NAME?' [[File:786107613 kSYvf-O.jpg]] ==Troubleshooting== If you get an error saying #VALUE? like this [[File:786110756 4dKCW-O.jpg]] The problem is probably that you have the wrong data type. In the case above, the macro S2MS (seconds to Minutes:Seconds) requires an integer number of seconds, not a 'minutes:seconds' value. Equally MS2S requires Minutes:Seconds to work correctly.  ==Brief Documentation=={| {{table}}|- | Macro || Usage|- |S2HMS ||Convert number of seconds to hours:minutes:seconds|- |S2MS ||Convert number of seconds to minutes:seconds|- |HMS2S||Convert hours:minutes:seconds or minutes:seconds to number of seconds|- |PaceToMPH||Convert minutes:seconds as minutes/mile to miles per hour|} 
==The Macros==
 
Function S2HMS(TotalSeconds)
Dim Hours As Long
S2MS = Format(minutes) + ":" + Format(Seconds, "00")
End Function
 
Function S2MST(TotalSeconds)
Dim Hours As Integer
Dim minutes As Integer
Dim Seconds As Integer
Seconds = TotalSeconds
Hours = Seconds / (60 * 60)
If Hours > Seconds / (60 * 60) Then
Hours = Hours - 1
End If
Seconds = Seconds - (Hours * (60 * 60))
minutes = Seconds / (60)
If minutes > Seconds / (60) Then
minutes = minutes - 1
End If
Seconds = Seconds - (minutes * (60))
If Hours = 0 Then
S2MST = Format(minutes) + " " + Format(Seconds, "00")
ElseIf Hours = 1 Then
S2MST = Format(minutes) + "." + Format(Seconds, "00")
ElseIf Hours = 2 Then
S2MST = Format(minutes) + ":" + Format(Seconds, "00")
Else
S2MST = Format(minutes) + "+" + Format(Seconds, "00")
End If
End Function
End Function
 
==Credits==
Many thanks to Mark E for his hard work in testing these macros and these instructions!
==See Also==
* [[Excel Training Log]]

Navigation menu