Protect Sheet But Allow User To Unhide Specific Range Of Cells
Jul 19, 2014
All, can I protect my worksheet while at the same time allow users to unhide a specific range of cells?
I'm hiding cell range FA:FK, but based on certain conditions I want to allow the user to unhide the cells but I do not want the user to be able to unhide any other hidden ranges. if there is a way to do this without using VBA. If it cannot be done with VBA
I have a speadsheet that has 27 columns for time entries, however employees seldom need to use more than the first 12 columns. I need to protect the sheet but would like the employees to be able to Unhide the columns when they need to use them, then reHide them. I can't find this as an option in either 2003 or 2007.
I want to administrate a short training test. The user has chooses a correct answer A-E, off a drop down menu. I want to set it up so the user can't answer multiple times until they choose the correct answer.
Have a worksheet that will be used multiple times. User will enter name and employee number only on the first instance that the worksheet is opened. Would like to protect that info automatically for further usage. Most of the worksheet is protected but some cells need to remain unlocked so the "whole" sheet protection will not work.
How do I protect only specified cells, say F3, G3, H3, I3, after the user enters data thru an input box without changing any other protected cells on the sheet?
Is there a way to protect some cells of a spreadsheet from user input (by typing only), yet letting button controls and VBA macros modify the values of those cells?
I need to prevent users from accidentally deleting formulas or values generated by VBA macros or controls, although they may delete values in some cells.
I have the following question: I attached my file. In sheet "boekhouding" I want every cell in column H to contain a button that locks that specific row. So I can't accidently change the dropdownmenu for that row.
I also have some sort of strange problem in worksheet "Rekeningen", Range D1-D5 is named "Grootboek" were it should be named uitgaven. I can't change the name, but it doesn't seem to matter in worksheet rekeningen (the drop down menu for uitgaven works normally), what is wrong here?
Essentially I need to copy the first 8 cells in a row in one sheet (for example: A3:I3) when the word "Actuals" is entered into A3 from a drop down list. Then the copied data needs to be pasted to a another existing worksheet in the same workbook in the next available row. The data includes mostly values, but there is a formula in column H that creates a hyperlink out of the content in column G, friendly name in column I.
I am not stuck on the idea of having "Actuals" entered in column A as the trigger or change event and there will be times when a new copy/paste of the same data will need to be done more than once at a later date.
For further information, column B contains a serial number/productID number.
I Need to protect some cells from being Changed or deleted, if i protect the whole sheet there are some cells that need to be changed using the formatting bar I.e borders, colours, font- colour, Merged cells.
the protection setting allows you to leave individual cells unprotected however you still cannot change the border for example.
There is 2 parts to my question and I will explain them as best as i can.
1. I have a front sheet and 12 other sheets ( 1 for each month of the year) they all have the same layout. On my front sheet I want to create a button which will capture the sheet onto my front sheet for the current month, whether this means to make 12 buttons to choose which month is displayed on the front sheet or one that detects the date by system time i dont mind.
2. These 12 sheets will ideally be hidden and what I am wanting is again, on the front sheet 12 buttons for each sheet to bring up the corresponding hidden sheet so they can be viewed, and then on each of the 12 sheets another button which will hide them and return the user to the front sheet.
I am very new to VBA. I need to have a code that will hide/unhide cells based on a date range.
Cell A1 contains the formula for todays date, based on that answer, I want to hide/unhide columns based on a weekly date range.
Ex.:
Today is 03/18/2014 I want excel to say If A1(Today) is greater than 03/14/2014 and less than or equal to 03/21/2014 then unhide column E and hide the rest.
Then let's say Today is 03/22/2014. I want excel to say If A1(Today) is greater than 03/21/2014 and less than or equal to 03/28/2014 then unhide column F and hide the rest.
My worksheet with macros gets messed up when a user selects either multiple cells from column F or selects multiple cells in any one row (but only if column F is included) in the range C17:O116 and hits "delete". I will either do an exit sub, an application.redo, or something similar so that this doesn't happen, but I don't know how to write the code to trigger these events. So I need a way to determine "if the user selects multiple cells in column F and hits delete" or "if a user selects multiple cells in any row from 17 to 116 that includes the cell in row F, and hits "delete.""
Set Rng = Range("F17:F116") Set rng2 = Range("K17:K116") Set Rng3 = Range("L17:L116")
I need to import some spreadsheets that are sent to me into a master database spreadsheet. I have attached both below. The complaintstest.xls is the master database and the other is the sheet that will be imported. What I would like to happen is when the macro is run, the user will be able to select the sheet they would like to import through a dialog box. After the sheet is selected the macro will import the cells from the selected sheet into the master database in a particular order. In the master database example on row 2 I have listed the columns from the sheet to be imported in the corresponding column on the database sheet. This will macro will be run a couple of times a week so the macro will have to find the next empty row to start the import on.
How do I protect a select range of cells from being changed? There may be some formulas in certain cells, which produce data based on other worksheet cells. These cells are not for user data input, but for data output only. I don't want end users to acidently delete the formulas in cetain range of cells, by entering a value in the cell, which then will write over the formula.
I have a worksheet with employees names and their overtime hours worked that week. I would like to add some code to a button that will prompt for a password. If that password matches a predefiened password then lock a range of cells and place a time stamp next to the button and maybe change the button color of the button to Red. Now if the person with the password wants to change the locked cells, they can click the button again and enter the password and the button will turn green so they can make the changes. I would like the time stamp to be updated every time the cells are locked. Also wanted to have one button for every work week so about four buttons per worksheet. Here is an example of the worksheet. The range of cells I want to lock are the ones in bold.
I have been really trying to get this sorted myself and I can get it to work with one exception. I can't get the sheet to lock with a password. It locks, but if I try to unlock it again, it does so without prompting me to enter a password.
Essentially I am wanting to unprotect two sheets, unlock the cells that were previously locked (so users couldn't enter data in them when the sheet is protected), then reapply the same password to protect the sheet, but now they will be able to enter data in the unlocked range of cells).
The second macro is to reverse the changes made in the first and 're-lock' the unlocked cells) (and again apply the same password to the sheet).
Here is what i am trying to achieve. If the date 2/20/2010 is located at F53 & the cell next to it at H53 is populated with a number between 1 & 16, then i want the cell at J11 (42 rows further up) to auto populate with the number 1. When this occurs the cells beneath this, from J12 to J52 should also auto populate with the with consecutive numbers from 2 to 42. Would also like to see the cells with numbers 1 to 28, automatically format to orange & the cells containing numbers 29 to 42 automatically format to yellow. I plan to have this condition repeat several times later in the year, at dates that are to be decided. When these dates are decided i want to be able to enter a number from 1 to 16 & next to the date & all of the above automatically occurs.
I'm trying to create a macro that allows users to hide or unhide selected rows, either via toggle or userform. The macro I have looks like this, but for some reason it doesn't hide the rows:
Sub Hide_Range() Dim UserRange As Range DefaultRange = Selection.Address Set UserRange = Application.InputBox _ (Prompt:="Select Range to Hide:", _ Title:="Hide Range", _ Default:=DefaultRange, _ Type:=8) Rows.Select Selection.EntireRow.Hidden = True End Sub
what's wrong with my code and how I can further develop it to let the user decide whether to hide or unhide the selected rows?
I have coded a user form to automatically unprotect a sheet, then protect it with a password after data is entered from the User Form. Works great. However, after it is protected through the User Form script, I cannot unprotect the sheet to edit it. It will not recognize that it is the correct password, although it is.
Private Sub cmdOK_Click() Dim NextRow As Long NextRow = Application.WorksheetFunction.CountA(Range("b:b")) + 2 Cells(NextRow, 2) = txtAddProvider.Text ActiveSheet.Unprotect Password = "stats@fwh" Range("B3:B21").Select Selection.AutoFilter Selection.AutoFilter ActiveWorkbook.Worksheets("Lists").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Lists").AutoFilter.Sort.SortFields.Add Key:=Range( _ "B3:B21"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Lists").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ActiveSheet.Protect Password = "stats@fwh" End Sub
I have a sheet that is password protected. I have this code attached to a command button. It will unlock the worksheet, autofilter it, print it, unfilter it, and password protect the sheet again. However it is protecting it without a password. I need to have it protected with the password so that someone will not be able to just go to tools to unprotect the sheet.
Private Sub CommandButton1_Click() ActiveSheet.Unprotect "rainforest" Columns("O:O").Select Selection.AutoFilter Selection.AutoFilter Field:=1, Criteria1:=">0", Operator:=xlAnd ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Selection.AutoFilter Field:=1 Selection.AutoFilter ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowSorting:=True, AllowFiltering:=True End Sub
I would appreciate if someone can help me figure out a macro that will copy range (A3:T112) from "Step 1" sheet to next available row in "Step 2" sheet.
I did create a group of two shapes. One square and one circle. The main reason behind grouping them is to have them rotate around the same centre.
Now the problem of the usage of the shapes. I don't want them inadvertently shifted by the user. The rotation of the circle will be wobbly.
The circle is rotated by a module. Protecting the sheet makes the rotation of the circle stop working.
My thought was to overlay part of the sheet by an Active X label and set the BackStyle to transparent and there is no need to protect the whole sheet.
The problem now is that when I click on the label it turns white, and as soon as I move the cursor out of its perimeter the "underlying" circle will become visible again.
How to prevent this behaviour of the label. I want the label to stay invisible and protect the underlying shapes from being moved.
The senior members have made it less intimidating to start writing code. Infact I picked up a DUMMIES book and a Macro book and it's been a lot of fun. Anyway here is my code that I have created thus far.
HTML Code: Sub ReportExtract() Sheets("Sheet1").Range("B2").Copy Destination:=Sheets("Sheet2").Range("C4") Sheets("Sheet1").Range("A2").Copy Destination:=Sheets("Sheet2").Range("C6") '
[Code]....
Essentially what I am trying to do is copy these cells from sheet 1 to sheet 2 and then save it as another file using the name of C6&"Text String *Report" This would essentially take the first record A2 - CL2 and then delete that record and move onto the next row 3 and loop through and create another file with the same name C6(Sheet2)&"Report Name" Sheet 2 is the template where the data from the rows will drop into. I have those called out above in the code. It works just fine. I'm stuck though with how to copy the file and move threw all the records and saving them as separate files. Just to make sure I am clear it's 1. Copy data from sheet1 to sheet2 (Template). 2. Then save that file with the file name as cell C6&"some text" concatenated. Loop through sheet1 grab the next record and rinse lather repeat. Just a few weeks ago I was struggled to create macros and now I can copy. Pretty weak I know but I really enjoy this, in fact I sold all my books and just have VBA material so I stay focused.
I'm trying to create a macro for another user that she will use repeatedly for many different spreadsheets. Each spreadsheet will have a varying amount of rows that will need to be exported to a different file. She will highlight the cells she wants exported and then hit a button to do so. My problem is this: how do I code a macro so that it will know which cell is the beginning of her selection and which is the end?