View Single Post
  #10   Report Post  
Posted to microsoft.public.excel.misc
Gord Dibben Gord Dibben is offline
external usenet poster
 
Posts: 22,906
Default Protect Data after entry

I have never used 2000 version so can't speak to that.

With 2002 and 2003 if you set the Autofilter columns before you protect the
sheet your code should work.

Try this google search return for how to employ userinterfaceonly method to
allow autofiltering in Excel 2000

http://snipurl.com/14kv9



Gord

On Fri, 8 Dec 2006 09:34:00 -0800, Ndel40 wrote:

The code works great... just one problem. I can't use the autofilters after
the sheet is protected.

I'm using Excel 2000

I tried adding "AutoFilter:=True", but it is not supported by Excel 2000...

ActiveSheet.Protect Password:="justme", DrawingObjects:=True, _
Contents:=True, Scenarios:=True, AutoFilter:=True


Is there a way in Excel 2000 to protect the sheet and still use autofilters?

"Gord Dibben" wrote:

Lee

In the absence of details on which cells and column try this.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo enditall
Application.EnableEvents = False
If Not Intersect(Target, Me.Range("A1:A15")) Is Nothing Then
ActiveSheet.Unprotect Password:="justme"
With Target
If .Value < "" Then
.Locked = True
'.Offset(0, 1).Locked = True ' to lock column B cell
End If
End With
End If
enditall:
Application.EnableEvents = True
ActiveSheet.Protect Password:="justme", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
End Sub


Gord

On Fri, 10 Nov 2006 18:27:01 -0800, Lee wrote:

Is their a way to modify this macro to work if I only want to lock 15 of the
cells in a particular column after the data has been entered??

Thanks,

"Gord Dibben" wrote:

A formula cannot do anything but return results.

You could use event code in the worksheet.

First, select Column B and FormatCellsProtection. Uncheck "locked"

If your column of receivables is other than B, edit the

If Target.Cells.Column = 2 Then to something other than 2

Copy/paste the code below to the worksheet by right-click on sheet tab and "View
Code"

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
On Error GoTo enditall
Application.EnableEvents = False
If Target.Cells.Column = 2 Then
ActiveSheet.Unprotect Password:="justme"
N = Target.Row
If Excel.Range("B" & N).Value < "" Then
Excel.Range("B" & N).Locked = True
End If
End If
enditall:
Application.EnableEvents = True
ActiveSheet.Protect Password:="justme", DrawingObjects:=True, _
Contents:=True, Scenarios:=True
End Sub

To cap it off close the sheet module by clicking on the "x".

Right-click on the workbook/project and select VBAProject Properties then
"Lock project for viewing"

You can password protect this module so prying eyes can't see it and obtain
the password("justme").

You now save the workbook and close Excel....the VBAProject locking won't come
into effect until Excel is closed out fully.

If the users enable macros and if no one of them knows how to crack a
VBAProject password, you should be good to go.


Gord Dibben MS Excel MVP


On Sat, 5 Aug 2006 12:21:01 -0700, boatsc
wrote:

Once data is entered into a cell I need it to be protected (automatically)
and not able to be changed or deleted.

I am using this for a auditing receivables and once I see the receivable on
the spreadsheet, I do not want anyone to be able to change or remove it.
Need to also be able to add additional receivables to spreadheet.

A formula that if a cell has data it becomes protected was my thought but ???.