View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default changing math operations for math operations with = sign

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim arr() As Variant
Dim LastPlace As Long
Dim i As Long

On Error GoTo eh
Application.EnableEvents = False

With Target

LastPlace = 1

For i = 1 To Len(.Value)

If Not (IsError(Application.Match(Mid$(.Value, i, 1), Array("+",
"-", "*", "/", "^", "<"), 0))) Then

If i 1 Then

If IsNumeric(Mid$(.Value, LastPlace, i - LastPlace))
Then

LastPlace = i + 1
Else

Exit For
End If
End If
End If
Next i

If i Len(.Value) Then

If IsNumeric(Mid$(.Value, LastPlace, i - LastPlace)) Then

.Formula = "=" & .Value
End If
End If
End With
eh:
Application.EnableEvents = True
End Sub



--
---
HTH

Bob


(there's no email, no snail mail, but somewhere should be gmail in my addy)



"filo666" wrote in message
...
I have this code:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Dim arr() As Variant
On Error GoTo eh
Application.EnableEvents = False
For cnt1 = 1 To target.value.words.count
arr(cnt1) = Target.Value.words(cnt1)
If IsNumeric(arr(cnt1)) Or arr(cnt1) < "+" Or arr(cnt1) < "-" Or
arr(cnt1)
< "*" Or arr(cnt1) < "/" Or arr(cnt1) < "^" Or arr(cnt1) < "." Then
GoTo eh
End If
wrdd = wrdd + arr(cnt1)
Next
Target.Value = "=" & wrdd
eh:
Application.EnableEvents = True
End Sub

what I want to do is if the user types 3+5 then excell will change 3+5 to
=3+5 and will solve the operation; the problem us that
target.value.words.count
and Target.Value.words(cnt1) dont exist in excel, any suggestion
thanks