Want to enter 6 digits for each cell in a range of cells with VBA mask change to time format hh:mm:ss for each cell when entered. Code below does this for hours and minutes but I haven't been successful in modifying to work including seconds.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim vVal
If Target.Cells.Count > 1 Then Exit Sub
If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
With Target
vVal = Format(.Value, "0000")
If IsNumeric(vVal) And Len(vVal) = 4 Then
Application.EnableEvents = False
.Value = Left(vVal, 2) & ":" & Right(vVal, 2)
.NumberFormat = "[h]:mm"
End If
End With
I brought you an excel spreadsheet with the problem. I need to see if the Invoice number is repeated, so we use Filter to see how many times it was entered. Somehow there are certain invoices # that are in the spreadsheet but when you look for them at the displayed list from the filter, they are not there. I though it was from certain line but I was wrong. For example if you search the invoice # 317403, it is at the column F row 1131, but if you display the Filter, you won't see it.
I am trying to simply count the number of times each entered name appears on my list IE if John Smith appears 3 times in one sheet, in a column after his name would simply be the number 3. I tried this doing =COUNTIF(A8,A:A) Where A8 is his name and column A is all names. I keep a return value of 0 every time!!!!! I even tried =COUNTIF(A7,A12) where they were both the same names. And yes,I did do Ctrl + Shift - enter
I need a formula that will show the total number of times "text" is entered into a column and when sorted by year that would only show the total for that year. The COUNTIF formula i'm using only works for the total, not when sorted by year.
I have a user form with 2 textboxes (used as parameters for an ODBC query). The entry should be a period, as yyyymm. How can I check, for instance when clicking the Ok button after entry, that both textboxes are of the "000000" format and the last 2 numbers are between 01 and 12?
I need the users to be able to enter the time using either a . or a colon :,
So: 13:30 would give 13:30 and 13.30 would give 13:30. They have end up in time format too since I will be performing calculations on them. When that decimal place is entered I would like it to be turned into a dot
let's suppose I have a prefixed range like A1:A300 in which periodically I need to enter some records (normally numbers but also sometime blank cells - i.e. void no entries); so imagine you have an array of cells in which I want to catch by mean of a formula or a macro the last entered significative record (i.e. a number); the objective is obviously to catch the last significative record in that given range having numbers in it (i.e. leaving out any blank cells in between); no other clues to approach the problem are given: do you think it's possible to sort out somehow this tricky problem ?
Basically I want to be able to type a number and have a colon inserted two spaces to the left. So 123 would become 1:23, 1234 would be 12:34 and 12345 would be 123:45.
I'm working with anywhere from one to several thousand hours in a spreadsheet. I'd like to be able to use a time mask like this:
I'd like to enter dates without having to use the forward slash symbol between the day, month and year values. I've read a post by Dave Hawley explaing how to do it, but I can't get it to work for me. There must be some step that I am not aware of.
I have entered VBA code and tested it with success. If I then save & close the excel file and then re-open it, the mask time entry is not saved (time does not appear correctly after input) and per instructions I have designated (and am using) the cell input range.
I’m trying to write a VBA script to create disguised prices in an empty column “A” by extracting, and adding additional random generated characters (alpha, numeric, extended character set) from adjacent column “B” to create a scrambled price sheet.
Example Data: (2 columns and 5 rows)
Column A = newly scrambled prices. Column B = product prices.
Input: Column B = $13.95, $5.99, $4.00, $12.50, $10.10
Output: Column A = XCP1D3-VG9S5T.1L1, HUI0F5-SJ9W9X.9A6, RTJ0K4-JM0D0Z.4B4, KET1S2-AK5G0B.3M2, DLE1S0-QK1G0M.0C0...................
I have a long list of data (around 10,000 rows) with one column Client Sensitive (Column A see below) that needs to be changed before using in a pivot so the client won't see this data.
At the moment I'm using a formula but happy to use VBA for this as the rest of the report updates with VBA.
The formula that works but takes far too long is =IF(COUNTIF($A$1:$A2,$A2)>1,VLOOKUP($A2,$A:$R,18,FALSE),MAX($R$1:$R1)+1) Where column A is the sensitve data (and the unique identifier) and column R is the column the formula is entered.
The below is what I want, the column R I now use in a pivot to get the results I want then I can hide that column and delete Column A so no Client Sensitve data is with the spreadsheet.
However as I've said it takes far too long to calculate down 10,000 rows..
how I can create a custom mask that will always put a / at the start of each cell in column C. So basically when I enter a number in, say 350, the mask will automatically put a / in front of it - /350 or even better /space350. The only issue is that the number will change in length a little, so not sure if this is a problem or not.
Is there a formula that I can put in AI that will mask the text character from text position 3 through the 2nd to last text position of each business name in AH? Where in the heck do you find XLGenie in the Excel 2007 ribbon? I have it installed and its in my addins list, yet nowhere to be found in the ribbon!
I have a simple table with these column: Name, Surname, Address, Date of Birth, etc.
I would like to create a button which open a mask to insert the above data "automatically" in the table/columns.
I tried playing, being able to create the mask UI, but it doesn't work: the command "OK" doesn't insert the data. I am sure it is a stupid thing, but I can't sort it out.
Before my workbook is open the following code is run, which asks the user to enter the password. Depending on the password Range("name").Value takes values from the worksheet "Data" from table "M4:M20". The list of passwords is in the table "L4:L20". My code seems to be not optimal (too long). Does anybody know how to optimize this code?
Sub GoodMorning() On Error Goto Error 'Prompt the user for a password and unhide the worksheet if correct Select Case InputBox("Please enter the password", _ "Enter Password")
Case Is = "" Call HideSheets MsgBox "Sorry, that password is incorrect! Please contact the administrator.", _ ............
I have an excel file with many worksheets. I want to get a pop up message providing definitions of different subjects when they are entered from a drop down list in a specific range within a column to improve the users understanding of the subjects.
Worksheet 1 Range (where I want the pop up message to be valid): J85:J385 Subjects from drop down list in specified range: "x,y,z" Pop up message: "Definitions of x,y,z"
Do I have to make a new module, or write the macro in the selected worksheet? What should be the settings of the macro (general, worksheet, declarations etc.)
I need help with creating a macro that runs when a user enters a value in the 'Numbers' column, copies and pastes data in the corresponding worksheet 'Worksheet' column by the value of 'Numbers' column data. An excel file is attached.
I have a new project which I need some of the wonderful expert help with here at the MrExcel.com forum.
I have two columns of data, ITEM#, and LINE#, where ITEM# repeats multiple times in the report, and LINE# shows individually each line where the ITEM# appears in the source:
I have a range A3:E70 where A3:E69 have the same formatting and the text in A70:E70 is bold. I want to copy-paste the entire range a number of times with a for ... next-loop. Actually, it's kind of a template system. I make the template A3:E70 and uses it a number of times.
I am trying to subtract from a collumn 14 seconds from the time that is in the cell. I do not want to manually enter in a formula, or copy and forula into the cell as there is a large amount of data for this. The report will be updated daily and will need to always subtract 14 seconds from the time, and the result should be populated in the cells that the time is subtracting from.
I am trying to get rid of some duff data by running a comparison to a fixed value on a defined range. However, the macro tries to compare the cell value (00:05:00) as a decimal value.
I think I need to use the format function to get round this.
For Each timecheckcell In range("g3:g60") timecheckcell.Value = Format(MyTime, "h:m:s") If timecheckcell.Value <> "00:05:00" Then timecheckcell.Offset(0, 1) = "" Next
I am trying to capture data for statistical analysis, but have hit a snag. As shown in attached sheet I have each day for the year broken down into hour time slots into which data will be added. As I will need to come up with a number of similar sheets in the future I was wondering if there is a way to automate through vba, a quick way to copy down the hour slots for each day, 365 times, rather than the laborious task of copy and paste manually.
I have the following data in one "Project_list" tab:
Project AAAA BBBB CCCC DDDD
I want to copy this data into another tab "Transpose" in this form:
AAAA AAAA AAAA AAAA BBBB BBBB BBBB BBBB
[code].....
So basically copying 4 times every row... as simple as that The constraint: I have about 1500+ projects in the project list, but this list can change so i need a statement that copy values 4 times till source tab has empty values. I would like to have in the second column the following serie for each project.
AAAA Q12014 AAAA Q22014 AAAA Q32014 AAAA Q42014
Note- i want to do this in VB not though formulas as i am doing other derivations in macro.
I have a range of cells that is 10 rows high. I want to copy and paste this range 11 times while identifying each of the 11 copies of the range, such as; 02,03,04...12.
Please see attachment for an example of what I am trying to do.
Does anyone have an idea of how this might be done in VB?