Limiting Cell Selection In VBA
Dec 5, 2009I created a very simple user form to input some data into a spreadsheet. I have a list box and this is my button code to input the data to a cell.
View 6 RepliesI created a very simple user form to input some data into a spreadsheet. I have a list box and this is my button code to input the data to a cell.
View 6 RepliesI have a calendar that enters a date into a spreadsheet cell. How can I modify the code to limit the day selection to a Monday?
The current code is:
Option Explicit
Private Sub Calendar1_Click()
Range("V2").Select
ActiveCell = Calendar1.Value
ActiveCell.NumberFormat = "dd/mm/yy"
frmSchStartDate.Hide
End Sub
Private Sub UserForm_Activate()
Me.Calendar1.Value = Date
End Sub
i am considering the use of custom menus in an Excel application. is it possible to limit the selection of menu items for each worksheet? for example, sheet 1 all menu items are available, sheet 2 all but 2 menu items are available, sheet 3 all but 5 items are available.
View 10 Replies View RelatedI would like to be able to limit a drop down list's contents based on a user's selection in a different drop down. I am using Excel 2003, and I know how to do this in Access, but I can't figure it out in Excel. Basically, I have a list of themes in one drop down. The user picks a theme, and goes to a second drop down which is a list of sub-themes attributable to that one theme and no other theme.
View 1 Replies View RelatedI'm creating a spreadsheet (Excel 2003) in which a user enters data in several cells, each of which will permit different numbers of characters (to include spaces). For example, in the first cell, the user will be limited to 50 characters, in the second cell, the limit is 30 characters, and so on.
I found the data validation error alert feature, but want to give the user a cue that the entry is too long so they know to stop typing before moving to the next cell. If they only are alerted when they finish making the entry, they might not take the time to properly reconstruct the entry to meet the size limitation. I'm trying to make this more user-friendly.
Is there a way to set up the worksheet so the user knows that the entry is approaching the character limit? For example, each character filling an individual cell or having a display appear with a count-down for the number of characters remaining in the limit, or something similar.
How do I stop a user from entering more than 2 decimal places?
If I format the cell to "0.00" I can still type in 1234.1234 and it will display 1234.12.
If I select that cell, the value in the formula bar is still 1234.1234.
I've got a worksheet that needs to be limited by the value in a cell. I've attached it so you can look at it and understand what I need better. In I7 (red box) is a number that is the max a machine can rotate. B6 should never exceed this and B9 should be scaled down to match the output of B6. I think B9 will scale down automatically from the existing formulas if B6 is throttled correctly.
Should =FLOOR((((F5*D11)/D9)*3.82),50) have a max value equal to I7? And how would I incorporate it?
I tried very hard to design a leave roster for user to mark their leave application. The criteria are as follows:
1. 4 applications per date
2. a region of worksheet (i.e. "A2 to H20) will be defined for users to "click" on the cells (within the defined region) to mark their application.
3. once a cell is clicked (i.e. marked), it cannot be altered.
4. each click will automatically increase the total by 1.
I got the following code to deal with the situation but user can still click on any cell outside the region (in fact I fail to define the region).
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim m
ad = Mid(ActiveCell.Address, 2, 1)
m = Range(ad & 24).Value 'here a formula "CountA(A2,A20)" will be place in the cell (24, c).......................
I'm trying to build an investment calculator. Tried searching "calculator" as keyword but return nothing similiar.
There are eight cell : [ A ][ B ][ C ][ D ][ E ][ F ][ G ][h]
[ H ] is price of the leverage
[A] is X balance
[b] is X lot size
[C] is X amount of money use to get x lot
[D] is X percentage of money use to get x lot
[E] is X point gain
[f] is X money gain
[G] is balance + money gain
Ignore the formulae for leverage to determine 1 lot price. Take 1 lot = 250.
What I'm looking for is when I enter any value at cell B, C or D, it will automatically calculate the value for either B, C or D cell.
Let say, the balance is 10000.
If I enter 2 at cell B. Then, it will calculate the value for cell C & D.
If I enter 750 at cell C, then it will calculate value for cell B & D.
If I enter 25 at cell D, it will calculate value for cell B & C.
how to use OR Selection in excel.
In one sheet i have a list from cell a1:a1000. I have named this selection 'headkit'
In another sheet, i am using 'headkit' to make a drop down list in a cell.
At the moment a lot of headkit hasn't yet been filled and contains lots of empty cells that will be filled as time goes by.
The drop down list currently has all the items in the list including the blank cells therefor making a very large blank list.
Is it possible to limit the list to show only cells with an entry in them?
I have this code that applies an Alt-Enter command following text being entered in a range named "ActivityRange". ActivityRange is only one row currently, but I have another macro that inserts a row into that range. This code works to add an Alt-Enter after text typed into a cell, but it does it for every cell in the row. I want it to only apply to column "C" and not any values in other Rows. In other words, only apply this command if values are entered into column "C", of the range "ActivityRange".
Anyone know how to alter the code below to accomplish this?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
If Application.Intersect(Target, Range("ActivityRange")) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each Cell In Range("ActivityRange")
If Len(Cell.Value) > 0 Then Cell.Value = Cell.Value & Chr(10)
Next Cell
Application.EnableEvents = True
End Sub
I need a few of my textboxes to not accept entries of greater than 40, Also need a message box warning to popup if this is done. I've seen some examples that are vaguely similar, but not quite what I need. I already have the following in place to limit characters:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If InStr(1, Me.TextBox1.Text, ".") > 0 Then
KeyAscii = 0
End If
Case Else
KeyAscii = 0
End Select
End Sub
Can I add to this or do I need a different sub?
I work for a localizer of text heavy software. Our developers normally use a converter to pull text out of a file and insert it into the program. This text is normally input into an Excel file since it has to correspond with files/locations in the program.
Since the space on the screen of the program is limited, we often face character limits when inputting text into Excel. Now, one cell might hold up to 255 characters, and I could restrict that with data validation, but within one cell I need to restrict each line (with a hard return) to 30 characters to fit on the screen.
So for example I have a row of cells that look like: ....
Is there a way to limit the range of values on the Y-Axis on the lower end? Like I don't wish the Y-axis to begin from 0 but say 500. Is that possible?
I have a set of data values ranging from 650 - 850, but the Excel graph however looks too fine because the Y-axis begins from 0.
It's some code I found and altered that automatically updates the cell to the right of a column that has drop down box data validation, creating a list of the selected values seperated by commas. The thing is, I only want it to do this in columns 8 and 10 but data validation drop-down boxes have been used in several other columns. I've tried various methods of limiting the scope, the latest being the line: If Target.Column = 8 Or 10 Then. But the auto update is still being applied to all drop down boxes in the sheet. So, how can I make sure the auto update only happens when the drop down boxes in columns 8 and 10, updating into columns 9 and 11.
View 4 Replies View Relatedthere is limit of argument in a function that can i put. for example i am not able to figure out why this function does not work
View 2 Replies View RelatedI have a spreadsheet that will always have the dates needed in cells H40 and H42. I would like the calendar to utilize the data validation in the cell to only allow someone to choose a date that is between the dates in H40 and H42.
Code:
Private Sub Calendar1_Click()
'ActiveSheet.Unprotect Password:="pbrmeasap"
ActiveCell.Value = CDbl(Calendar1.Value)
ActiveCell.NumberFormat = "mm/dd/yyyy"
ActiveCell.Select
Calendar1.Visible = False
[Code] ...
Could I add this code anywhere to make it work?
Code:
Sub DataValidation()
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=$H$40", Formula2:="=$H$42"
[Code] ......
Is it possible to limit a text box to 6 lines (whether forced or automatically wrapped).
View 2 Replies View RelatedI need to limit the number of Characters that can be inputted to the popup InputBox to just 31. How do I set MaxLength? Code I am using is listed below.
Code:
Sub NewRecipeSheet()
Dim ws1 As Worksheet
Set ws1 = ThisWorkbook.Worksheets("1. Recipe Master Sheet")
ws1.Copy ThisWorkbook.Sheets(Sheets.Count)
Application.Goto Reference:=Sheets("1. Recipe Master Sheet").Range("A1")
Range("A1").Value = InputBox("Menu Item Name?")
End Sub
When I limit the scrolling area in a worksheet, and it works there and then, when I close and reopen the whorkbook, the limiting does not work.
This is how I do it:-
I Right-click the sheet tab for the sheet which I want to place a limit.
In the resulting Context menu, I choose View Code. The VBA editor appears and asks for the password to view the code. I keyin the password
I then set in my limit as B2:O25
Then I close the VBA Editor and display the worksheet where I try and I find it working.
I close and save the workbook.
When I reopen the limiting has disaapeared!
I have a huge list of entries everyday (around 50,000) that needs a time stamp. Each of them has a time difference of 5 seconds in between. That is between two entries there is a time difference of 5 seconds. I use now() function to put the time stamp. The only problem is that I cannot have any value after 4:29:59 PM. That is, I need a macro that would check for the values in the C column, and if they are after 4:29:59 PM, put the value 4:29:59 PM, instead of the real time.
In cell C1:
IF((TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW()))) >(TIME(16,29,59)),(TIME(16,29,59)),(TIME(HOUR(NOW( )),MINUTE(NOW()),SECOND(NOW())+5)))
In cells C2:C9999999:
IF((TIME(HOUR(NOW()),MINUTE(NOW()),SECOND(NOW()))) >(TIME(16,29,59)),(TIME(16,29,59)),(TIME(HOUR(C1), MINUTE(C1),SECOND(C1)+5)))
However, the problem is I have so many entries that after a 10000 or so the time passes 4:30 PM. I think the only way to fix this would be to add a macro.
Here's my problem. In column B, i wish to allow users to choose 15 items for which i have created a list using validation. Each cell in the range B1 to B15 will contain one item. I have managed to allow them to select only 15 items by locking the other cells and allowing only the range B1 to B15.
However, i need prevent users from entering more than 5 identical items from the list. They can only choose a same item up to a maximum of 5 times.
Would you guys have an idea of how i can get around this problem? I really need to prevent them from entering the same item from the list more than 5 times and not only warn them.
I have a spreadsheet with data in every other column (i.e. A, C, E, etc.). I am using the "filter" option in Excel on the aforementioned range of cells although the little filter icon shows up on all columsn, including the blank columns in between my data. Is there a way to only have the filters show up on the columns with data?
View 2 Replies View RelatedIm building a booking/diary system for work.My system runs 9am till 5pm, 10 min slots. The team is 4 people. So I have 4 columns, one per team member, and each row is 10 mins. 9am, 9.10, 9.20 and so on.
I want to limit it so that if say 2 people already have something in at a time it wont let another person type in that slot. I would prefer a none VBA sollution if possible due to the ancient computers in running it on, but not too fussed if thats the route I go down (as I suspect I will)
The sollution I was considering was having a COUNTA for each range, and if it is 2 or over, not let people type into the other slots. This would also let me add exceptions by using a COUNTIF to minus other characters if needed, but im not sure if I can make excel "block out" a time slot. My other sollution would be similar, but have them to autopopulate the empty cells with an "X" if they are 2 or over as thats what I use to block out slots (breaks, lunches etc)
My other problem is that if they then type into the cell, it will obviously type over the formula, which makes me think it will have to be VBA.
I'd like to insert a picture background for multiple s/ sheets I've developed, however, even though the images I'm using are only 30kb's in size, it bumps my s/sheet file size from 900kb's to over 4mb's ! Is there a way I can stop this from happening, or, any way to restrict the background image to only a certain part of the worksheet as opposed to the entire thing?
View 3 Replies View RelatedI am trying to compare two workbooks and am running into the problem that since I declared my two workbooks, I am limited in the methods that I can use. Here is all of the code so far.
Option Explicit
Sub UpdateMasterFile()
Dim wbMaster As Workbooks
Dim wbEmailed As Workbooks
Dim wsPC As Worksheet
Dim Master As Long
Dim Emailed As Long
Dim intMaster As Integer
Dim intEmailed As Integer
Set wbMaster = Workbooks("Master Info.xls").Sheets("PlantsCom")
Set wbEmailed = Workbooks("EmailedData.xls").Sheets("NewInfo")
Master = Workbooks("Master Info.xls").Sheets("PlantsCom"). Range("a65536").End(xlUp).Row
Emailed = Workbooks("EmailedData.xls").Sheets("NewInfo").Range("a65536").End(xlUp).Row..............
If a user selects certain options from a drop down list created by cell verification (from list), is it possible to display an input box and have the resulting input populate on another worksheet in the workbook? I have an attendance template I'm working with and if a user selects OT (Over Time) then a input box is displayed prompting for how many hours. The overtime is then tracked on another worksheet.
View 1 Replies View RelatedI have a workbook with two sheets. The idea behind the workbook is an Interview Guide to be used just before an Interview. For now my problem is this.
Sheet 2 "Competencies" is just data. It stores competencies with their associated definitions and questions.
Sheet 1 "Control Page" is the sheet where the questions will eventually go. The user (Interviewer) will input data on the first two pages which will include name of candidate, date of interview etc. but they will also select 5 Competencies from the already existing drop down menus on page two. From there as the selections are made I wish for a code to copy the corresponding definition on sheet 'Competencies" to cells lower down in sheet "Control page".
I don't see a place to upload a file as I have a sample of the sheet ready to go.
I have attached a portion of an excel file I am using at the moment. What I require is a piece of VBA code which will allow me to copy selected data based on a combo box selection. What needs to happen is this :-
If the selection in the "Index" worksheet combo box related to "Month" in cell G19 is for instance "December", I would like the macro to compare this cell value to the cell values in cells C96, C124, C152, C180, C209, C236, C263 and C290 in the "Tech Services" worksheet and where the values match.......copy the commentary (Range C126:Z147 in December's case) to the range C34:Z55.
I would like to know if there is a way to expand the selection of cells from the current cell you are on to the very bottom cell available in the spreadsheet.
For example, I want to apply a formula from A12 - the very last A cell row in the spreadsheet.