Well, this is one thing that is probably done better in VBA. Not that you can't do it with formulas (I'm sure you'll get formula responses to this). First off, I'd like to say that if there is any way you could store your mesaurements as inches, that would be ideal. If not, then try the following code. To get the Area (length * width * height), just call the function from a cell in your workbook like this:
AreaVol(A4,B4,C4), where your length, width and height are in A4, B4, and C4 (it does not matter if you have them in the right order since we are taking the product of the 3). I'm sure that you'll be able to see how you could modify this for volume of a square as well.
Hope this helps,
Russell
(code follows)
Option Explicit
Public Function AreaVol(Length As Range, Width As Range, Height As Range) _
As String
Application.Volatile
Dim lngInches As Long
lngInches = GetInches(Length.Value) * GetInches(Width.Value)
lngInches = lngInches * GetInches(Height.Value)
AreaVol = FeetAndInches(lngInches)
End Function
Public Function GetInches(SomeLength As String) As Integer
Dim FeetSeparator As Integer
FeetSeparator = InStr(SomeLength, "'")
GetInches = Left(SomeLength, FeetSeparator - 1) * 12 + _
Mid(SomeLength, FeetSeparator + 1, _
Len(SomeLength) - FeetSeparator - 1)
End Function
Public Function FeetAndInches(Inches As Long) As String FeetAndInches = Inches \ 12 & "'" & Inches Mod 12 & Chr(34)
End Function
Please note that there is no error checking in these formulas. It assumes all of the measurements are entered correctly, with the single and double quotes in the right places. If you are going to use this workbook extensively, I suggest that you build in some sort of error checking (let me know if you need some help).
-rh lngInches = GetInches(Length.Value) * GetInches(Width.Value) lngInches = lngInches * GetInches(Height.Value) AreaVol = FeetAndInches(lngInches)