I have set up a userform. I have alot of if statements to help the user input correctly. The first part of the code is fine, it's just to show you what i'm doing. The part in red shows where i have no idea how to write it.
There is a value in worksheet 'day 1 grade 2'!h31, if the value is equal to or greater than 30 and a value has been entered into Me.NoOfStudents.Value, i want the msgbox the appear.
Is there a way to change the color of a msgbox? My option then appears to build a userform that basically does the same thing but allows me color selection.
Why is this important? I have a quasi-legal disclaimer that pops up every time the workbook is opened the first time (via a template). My boss has commented that after the first couple of times folks just blow through it without reading it (which is a fair comment).
My thoughts are to randomly change the color every time it opens, hoping that it might catch their attention. How do you control the text color to make sure it stays readable?
I am currently using a bunch of msgboxes to tell the user if a specific error has occurred. I want to get rid of the ugly gray box and customize my own. I am having problems setting up the code as I would like it to function like msgbox does where I can supply a header and message string and then it displays in the userform. I tried coding it kind of how I would pass variables to a function and it doesn't seem to work.
Code: Private Sub userform_initialize(msg As String, hdr As String) MessageBox.Caption = msg myMessageBox.Caption = hdr End Sub
I'm trying to create a dynamic msgbox that will display what data has been updated based on checkbox selections in the userform. I've named my checkboxes as Carey, Keith, and Juliet.
Ideally if only Carey's data has been updated, I'd like the msgbox to say
' Data has been Updated for: - Carey '
If Carey and Keith's data has been updated, I'd like the msgbox to say
'Data has been Updated for: - Carey - Keith '
MsgBox ("Data has been Updated for:" & vbnewline & _ If CAREY.Value =true then "- Carey" End if & vbnewline & _ If KEITH.Value =true then "- KEITH" End if & vbnewline & _ If JULIET.Value =true then "- Juliet" End if & ")
I have a Workbook with multiple worksheets. On one of my worksheets (Sheet4) I have three cells, let's call call them A1, A2 and A3.
A1 = Annual Budget A2 = Money carried over from last year A3 = Current financial year.
Formulas in other sheets are dependent upon these cells. I also have 3 userforms, one relating to each cell, with each form containing a textbox which enters its contents into its respective cell after clicking a command button. The userforms should display if the cell it relates to is empty. For example,
Private Sub Worksheet_Calculate() If .Range("A1) = "", Then Budget_Form.show End If End Sub
The problem I have is that the userforms only appear if I manually change the contents of the cells that they relate to. I need the sub to run every time the workbook recalculates. On top of that, I want the sheet to be hidden but the subs to still run. After looking around on other sites, I have pieced together the following code and placed it in the code for Sheet4
Private Sub Worksheet_Calculate()..................
I have spreadsheet with client names. I'd like to build logic that will open a form with client information when a user double-clicks on the client name. But I have a couple of problems.
- First, I'd like to protect the sheet and hide the formulas. But when I protect the sheet, I get the "the cell or chart you are trying to change is protected" error when I double click the protected cell.
- If I deselect the "Select Locked Cells" options when I protect the sheet, I no longer have the ability to double-click on the cell.
how I can double click on a cell yet not allow the user to edit the cell (or see the formula)?
This is weird - if you delete a sheet that contained a control then
a. showing a modeless userform resluts in a userofrm that goes invisible at subroutine End b. public variables lose their value
These things do not happen if the sheet did not contain a control. Attached is an example file - put the inputfile.xls in your default file location (or add a path in the code) then open the ProblemDemo.xls and run the main macro to see it fal - isthis another Excelbug I've found?
I am using Excel 2010. I have a user form with a date picker on it. I simply want to transfer the date chosen to cell A3 on a sheet. I have two problems. When I click the date picker, it doesn't show all the days of the month. When I do pick a date, it isn't transferred to the sheet. This is the code I am using in the user form:
VB: Private Sub DTPicker1_CallbackKeyDown(ByVal KeyCode As Integer, ByVal Shift As Integer, ByVal CallbackField As String, CallbackDate As Date) meetdate = UserForm2.DTPicker1.Value Sheets("MeetData").Range("A3").Value = meetdate End Sub
I have a formulae in cell C1 (looks up A1, B1). I want to have a msgbox come up when the value in cell C1 is either #VALUE! / #N/A / any other error. So: if error.type in (1 - 7), want error box. Else if error.type = #N/A, no error box!
I have used conditional formatting, by which cells in a column (Column D) would either have "Text1" or "Text2" or "Text3". VB code so that macro runs a check on 'Column D' and if any cell contains "Text3", a pop-up appears with message "Text3 is there"
I am trying to assigned the values of two adjacent cell in a msgbox (columns AE and AF) as it is to far away for me to scroll and hiding the other columns will cause me to unhid it when I need to enter some information on it.
What I want to do, is when I double click activecell in column B, msgbox will pop and tell me the values nested in the same row under columns AE and AF (contract start date is : in column AE, contract end date : in column AF)
Code: Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) MsgBox "Contract Start Date" & ActiveCell.Row.Offset(0, 30).Value & "Contract Start Date" & ActiveCell.Row.Offset(0, 31).Value
I have the following code, that I found on this forum, in my worksheet change event.
Private Sub Worksheet_Change(ByVal Target As Range) Static old_value As Variant If Sheet1.Range("C5").Value <> old_value Then 'a change has occured in cell C5 so do your processing.... MsgBox "Changing 5" old_value = Sheet1.Range("C5") End If.............................
I am trying to pop open a messagebox if a cells interior color index = 3 in a named range.
Private Sub Workbook_Open() If Sheet1.Range(" Schedules").Interior.ColorIndex = 3 Then MsgBox "One or more Trainee requires more than TWO HOURS PER WEEK to forefill his log book requirements" End If End Sub
The user enters data into Column E on Sheet1 and i want my code to display a pop-up box when a cell's value exceeds 500. I've tried the two codes below which i thought would work as Excel didn't highlight any breaks when i wrote the code, but no pop-up box is being generated when values > 500.
Private Sub Threshold_Check2(ByVal Target As range) Dim cell As range
For Each cell In ActiveSheet.UsedRange.Columns(5).Cells If cell.Value > 500 Then MsgBox "Value within 15% of Threshold" Next cell End Sub
Sub Threshold_Check(ByVal Target As range) Set Target = range("E1:E150") For Each cell In range("E1:E150") If Target.Value > 500# Then MsgBox "Value within 15% of Threshold" End If End Sub
Im looking for code for a button that asks for a Record number, and it will delete the record. But the record number is written in cells as 'Record No.1' 'Record No.2' etc. But i want the messagebox to ask for a single number and it would delete that record. Now the position of the records is what will be the difficult bit about this code, but it has a pattern.
For Record No.1 i need deleting cells C2:J100 For Record No.2 i need deleting cells L2:S100 For Record No.3 i need deleting cells U2:AB100
If anyone could give me a bit of code that works for these 3 then i could waste a load of time filling the rest of them out.
In the attached worksheet I have UserForm2. When I click on open compare form button on the menu sheet it opens UserForm2, I would like the information I select in the first 7 combo boxes Vegetable - Ball on UserForm2 to loop through the data in the database sheet Columns A:G and compare the entries to the non empty/not blank cells in each row. If the form contain data that matches all the non empty/not blank cells in a row in the database sheet then it is a match and should show the label and display the message. If the form entries does not match to the non-empty/not blank cells in any of the rows on the database sheet then do nothing.
The problem I am having is getting it to loop through the sheet and bring back the right results. It is only matching on row 2 of the database sheet when I select cabbage in the vegetable combo box and apples in the fruit combo box . I cannot figure out how to get it to loop through all the rows for the range I want to compare (A2:G7) - I need this range to be flexible so as data is added it will expand to read all added rows.
The code is on the btnSave_Click() for UserForm2
I attached the spreadsheet and I am explaining what I want to do and the expected result.
Fruit Fruit Type Vegetable Games Toys Cereal Ball
What I want to do is loop through the Database sheet and if the fields on the form contain all the values in any row of the Database sheet, excluding empty cells in the Database sheet, then display a message.
So if on the form I selected Broccoli fron the vegetable combo box, Cricket from the games combo box, puzzles from the toy combo box, bananna from the fruit combo box, grits from the cereal combobox, and baseball from the ball combo box, in the databse sheet tabel shown above the match would be row 6 since the values for vegetable, game, toy, fruit, cereal and ball on the form matches what is on row 6 of the Database sheet. It does not matter what other fieds are selected /filled in on the form, the match should only take into consideration the populated cell in each row of the database sheet.
So, if the user enters Apples in the fruit combo box and Cabbage in the vegetable combo box but had blank or something other than bike in the toy combo box on form it would be a match to the Database sheet row 2, regardless of what the user enters in the remaining fields on the form
If the user enters Berries in the fruit combo box, Blueberry in the Fruit Type Combo box, Carrot in the vegetable combo box, and Grits in the cereal combo box it would be a match to Database sheet row 3, regardless of what the user enters in the remaining field on the form .
If the user enters Apples in the fruit combo box, Cabbage in the vegetable combo box, and Bike in the toy combo box on form itwould be a match to the Database sheet row 5, regardless of what the user enters in the remaining field on the form .
If the user enters Grape in the fruit combo box, Carrot in the Vegetable combo box, Cards in the game combo box, and football in the ball combo box on the form it would be a match to Database sheet row 7, regardless of what the user enters in the remaining field on the form.
If the user enters Kiwi in the fruit combo box, Cabbage in the vegetable combo box, and Bike in the toy combo box on form it would NOT be a match to the Database sheet because the Database sheet does not have a row that contain Kiwi, Cabbage, and Bike.
So basically, if the entries on the form match the exact values for all the non-empty (blank) fields for any row in the Database sheet, then it is a match.
-If the entries on the form do not contain an exact match to all the non-empty (blank) fields for any of the rows in the Database sheet, then it is not a match. -If it is a match show the label and display the message box -If it is not a match the do nothing
I have a list box that I'm using to pull customer information from my "Customer" sheet to my "Invoice" sheet. I can actually open, select, and close the userform. However, I can't get the macro to put the information into the specified location on my "Invoice" sheet.
Here's my code so far:
Private Sub Cancel_Click() Application.ScreenUpdating = False
Private Sub customer_Change()
Here is the "Customer" sheet I'm pulling the info from:
And here is the location on the "Invoice" sheet that I'm trying to direct the userform to:
And here's my userform just for reference:
The userform works perfectly until I press the OK button. That's when I get the error.
I have included the table. What I want to do is in a user form pick a county ie Devon, Then by clicking "go" all entries that contain "Devon" are then copied to a " sheet 2" I don't want to use the Ctrl-F
I've got a User Form that works perfectly. It's activated on Chart Month sheet, you enter data into it and it switches to Comments sheet and copies the data, before returning back to the Chart Month sheet.
I have now added the same functionality to Chart Week sheet. Both Chart sheets use the same comments data, so it doesn't matter if you run the User Form from Chart Month or Chart Week. However, when I run the User Form from Chart Week then it switches to the Chart Month sheet once it copies the data, as I have Chart Month in the code. How do I get it to return to the sheet that it was originally on ie either Chart Week or Chart Month?
Code: Private Sub CommandButton1_Click() Dim emptyRow As Long