But it was relevant to this portion of your post:
If Left(Target.Formula, 1) = "=" Then ...
This can give misleading results.
Just the relevant portion of my post.
Option Explicit
Sub testme()
With Range("A1")
.NumberFormat = "@" 'Text
.Formula = "=b1+b2"
MsgBox .HasFormula & "--" & Left(.Formula, 1)
End With
End Sub
b&s wrote:
Hi Dave,
thank You for Your commentary. My remark was that: Left(Target.Value,1) is
not relevant formula for equation: If Left(Target.Value,1) = "=" Then ...
(testing cells with formulas), therefore my recommendation, for that case,
was: Left(Target.Formula, 1)
--
regards/pozdrav!
Berislav
Dave Peterson wrote:
I think for the majority of cases, it probably won't matter. But
personally, I like to user .formula when I'm plopping in the formula.
I'll use .value when I'm putting in a constant value.
But since some people actually use '=============== as a separator
(for visual effect), I find it much better to check .hasformula than
=left(.formula,1)
For instance:
Option Explicit
Sub testme()
With Range("A1")
.NumberFormat = "General"
.Formula = "=b1+b2"
MsgBox .HasFormula & "--" & Left(.Formula, 1)
.NumberFormat = "@" 'Text
.Formula = "=b1+b2"
MsgBox .HasFormula & "--" & Left(.Formula, 1)
End With
End Sub
Peter Jausovec wrote:
Well, if you use .Value to specify a formulae (e.g. Value =
"=A1+A2") and you check if formulae exist (Range(..).HasFormula) you
will get True.
Maybe an MVP will describe if there is a difference.
--
http://blog.jausovec.net
"b&s" je napisal:
Hi Peter,
Both of them have same result :)
I'm not 100% sure :-)
--
pozdrav!
Berislav
Always nice to hear if a suggestion works or not.
************************************************** *********
ROT13 - email address
Peter Jausovec wrote:
Hi Berislav,
Well, basically in this case it doesn't matter if you use .Value or
.Formula
Range("A1").Value = "=A3+A4"
Range("A2").Formula = "=A3+A4"
Both of them have same result :)
Regards,
Peter
.... Hi Peter, maybe this:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object,
ByVal Target As Range)
If Left(Target.Formula, 1) = "=" Then
' user is trying to enter a formula - do something"
End If
End Sub
--
pozdrav!
Berislav
Always nice to hear if a suggestion works or not.
************************************************** *********
ROT13 - email address
Peter Jausovec wrote:
Hi,
Use the SelectionChangeEvent:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object,
ByVal Target As Range)
If (Left(Target.Value,1) = "=") Then
' user is trying to enter a formula - do something
End If
End Sub
That sounds pretty logical Peter, any idea on the syntax for
that?
Thanks for the replies!
"Peter Jausovec" wrote:
Hi,
Just an idea:
try catching OnChange event and check if = is entered and then
popup a password dialog
Hope this helps.
Peter
--
http://blog.jausovec.net
"RHmcse2003" je napisal:
Hi, I am looking for a solution to be able to allow some cells
that are unlocked to have other users enter data into them,
however I don't wan't other users to be able to enter formulas
without a password. I have heard of this being done before
but I didn't know if it was an option I've overlooked or some
kind of advanced VB code.
Any help is greatly appreciated,
RH
--
Dave Peterson