Keep/Retain Leading Zeros When Importing Text File
Jun 5, 2008
i cant do this from importing the data, so instead i have to try and fix it with code. I get a sheet of data from an external source that removes the 0's in the front of the number. Its only a 4 digit number so 21 would be 0021. Now i have been able to trap the data i think i would need. i created a =len() statement to tell me how many numbers each cell has. here is the code i think how it would work.. i just need a little help with filling in the blanks. I would assume its something to the lines of " 00+string value if it was 2 numbers needed.
B2 has the Len values (4,3,2,1 etc) and A1 is the original string that has the values.
So i want the code to add 1 2 or 3 zeros to the front of the number based on the len value.
Range("B2").Select
While ActiveCell.Value <> ""
ActiveCell.Offset(0, 0).Select
Select Case ActiveCell.Value
Case Is = "3"
ActiveCell.Offset(-1, 0).Select
ActiveCell.Offset(1, 1).Select
Case Is = "2"
ActiveCell.Offset(-1, 0).Select
ActiveCell.Offset(1, 1).Select......................
I can't seem to get the Concatenate function to work in my macro when there is a combination of numbers and text. It works fine is there are no alpha characters. I am using this macro to format all of the data in column "A" to have 5 characters and be text. These values will later be used in formulas and Pivot Tables.
Sub Macro2()
Dim sinlen As String Dim sinformat As Variant Dim lastcell As Variant
I have ID numbers that sometimes starts with one or more zeros and when i try to paste a string containing ID numbers that starts with a zero, excel converts it to a number thereby deleting the leading zero(s). Is there any way to force excel to keep the leading zero when i paste from the clipboard?
I have tried setting the format for a column as text using xlSheet.Columns("D").NumberFormat = "text" before pasting to try to force excel to keep the leading zero but the ID# comes out unreadable as "############". I have also tried formatting as "General" and custom formatting the column before pasting but have been unsuccessful thus far. I've seen other programs accomplish pasting numbers with leading zeros but how do you do this?
I am just basically sorting through a huge dataset and grabbing unique codes and storing them in an array for later use. Some of the codes are numeric and some are alphanumeric therefore I am storing them as strings. However, when a code is for example 000578 - once a recall this from the array it has become 578. Is there anyway to preserve the entire code, i.e. make the array recall 000578.
I have a macros which copies a column of cells to a different spreadsheet and does a few other complex tasks with the data. Some of the data are reference numbers such as 00012345 or 001 which is changed to 12345 and 1 after being copied. What macros could I use to copy this data as is without it being changed?
I am having problems choosing a format for the column in my spreadsheet that contains my account codes. This is especially a problem when the code starts with an '=' sign and is followed by a number or has a '£' sign followed by a number.
I receive the file in a .txt format which I guess if I get it that way I would not have a problem but as I need to work on the file in excel before uploading it I experience problems. For instance when I open the file the codes that begin with '=' + a letter for instance =Y just comes up as '# name?' and only when I click in the cell can I see that it is =Y. Also the code '=1' just comes up as '1' as does '£1' - now this causes problems as for a start I need to do Vlookups on the account code but now instead of three distinct codes I have 3 1's.
The only way that I have discovered how to solve this is to click into each cell and add a ' before the text. (this changes the format to text - right??) But obviously this is very time consuming - is their a quicker way to change these cells. I can't just right click and format cells - text. This does not work?
I want to know how to index a drop down list to be used for calculations.
Up until now I was using
Range("B1").Select 'the cell where the drop down list is ActiveCell.Formula = SiteID 'site id
But for whatever reason it trims a trailing zero from SiteID when setting it in the second line. SiteID is a VBA string.
Indexing it would work, as would preserving the zero so help on either one is appreciated. Auto Merged Post Until 24 Hrs Passes;Correction, I lied. I was using this line to set it.
Range("B1").Select 'the cell where the drop down list is ActiveCell.FormulaR1C1 = SiteID 'site id
I have managed to retain leading zeros in a cell by formatting the cell and selecting Number and Custom and adding the maximum number of zeros I want to have in front of the number in the cell i.e. 000002.
I want to have another cell in the spread sheet which contains the value 35394000002 using the formula =A24&B24.
When I use this formula I get 353942. How can I retain these zeros?
I need either a foumula or macro to add leading zeros to a number based on text in another column
Column A is the original number Column B is blank and where I want my result to go leaving column A original Column C is where the text is that the leading zeros will be based on
A1 = 14M3652100 B1 = Blank C1 = If this column has text "ASP" or "POSMOS" or "ANISON" I need B1 to result in 0014M3652100
So if I have this data in a column you notice they have different length. Now I want my macro to add leading zeros until the length of all occurrences is 4.
I know for numbers you can do a range.numberformat = "0000".
But this won't work for B74 because (obviously) it will not be recognized as a number.
I know in a formula you can do it with the command TEXT. However I do not want to create extra columns I want something to alter it in place just like the numberformat does but then for numbers and text.
I'm trying to convert a set of numbers between 1 and 9999 into text strings, with the number at the end as a four digit string, so 1 becomes "COLUMN0001", 123 becomes "COLUMN0123", etc. In excel, it would be easy - I would just use the text function and convert the number to a string and append it to the word COLUMN, but as far as I know, there isn't an equivalent function in excel and running excel functions in VBA is notoriously slow (especially as I will need to do this about 360,000 times).
I need the values that are copied from the template to copy over in text form from the "Data" Tab. Secondly, the master sheet has multiple lines for each vendor. For the area highlighted in red I'd like for it to copy all cells in column C for the vendor and search the vendor by name. Then, move to the next sheet.
I cant seem to figure out how to concatenate data from two cells into one cell and retain trailing zeros. If Cell A1 has ".0000" and cell A2 has ".0005" then I want cell A3 to show: ".0000-.0005".
I get "0-.0005" on my attempts. Alos, how do I make the value an actual number and not a formula?
I have formatted the cells to be '0000' (showing the leading zero) however when my VBA code runs it copies the cell value into a string but when I stop the code running to check the value the leading zero(s) are gone. I can see they are the same on both worksheets in the correct format. I've tried a few others like integer and long but same same.
I have a CSV file I'm importing into Excell that contains leading zeros in a number field. I cannot get the zeros to display in Excel, but the user of the report needs to see them. Is there a way to dsiplay the leading zeros on a number field?
I have received an attachment of a .csv file from a client and one of the fields is a tenant ID number that sometimes begins with 1 or more zeros. When I open the attachment it is opening in Excel and dropping the zeros. How can I open that up and keep the zeros. I need those leading zeros.
I need a formula that will make a 4 digit number by adding leading zeros. If the number is already 4 digits then don't add leading zeros, do nothing. all numbers will be 1,2,3,4 digits long.
For Example,
if number is 1 then make it 0001 if number is 11 then make it 0011 if number is 111 then make it 0111 if number is 1111 then leave it 1111
When I save my file as a csv, it drops leading zeros in my zip codes. Formatting the column as text or even zip code only helps when I save it as xls - as soon as I switch it to csv it drops them.
what i want to do is input a range of numbers into a cell "L12" from 1 to 450 though when in excel i have formated the cell to "number" so when i want number 001 it turns to 1
what i what to do in the macro is after
Dim sNum As Integer
Sheets("FFR").Select
sNum = Range("L12").Value
if the number 1 is in the cell "L12" the number 1 will be in the variable sNum, though i want the number to be 001!
would i have to count the number of numbers in the variable and then say for example if there is only "1" number in the box, use an "add 00" function to get the number in the variable to be 001! I have an idea what to do though no idea where to start!
i have a header row that i want to transfer to a new spreadsheet. here is my exact setup to make it more clear:
Sheet1 - 001 PM Usage$% Sheet2 - 022 PM Usage$%
i have dozens of these rows, and i want to set up a auto rename for the header row on sheet 2 to rename itself like this:
Dim the value from header row on Sheet 1 (001), and rename the header on Sheet 2 (022), keeping the remaining contents intact (this is important because i want to use the same function for other headers which varies).
what i am doing now is dumping the value of the first cell into a variable, but as it stands it doesnt store 001, it stores 1... stripping the zeros, which makes it more complicated.
i thought perhaps i should dim the first 3 characters in the header as a string, and rename the first 3 characters in header 2, which i think would be the most efficient, but i dont even know if that is possible.
importing a text file. 3 times per day, I pull a report off a website and save it as a txt file. Typically, the data consists of approx 2000 customer ID's, and their respective data. When I import the data into Excel, it uses 2 or 3 rows to list information for each customer ID. I need a to seperate out only the customers ID which are 9 numbers long (no text in the ID), their SS #'s, and are listed as "FUL Request" or "PTR Request".
Since the data takes up 2 or 3 rows, the "Text to Column" feature does not work.
So the VBA should be able to look at each row, and if it has a 9 number customer ID in the row directly above it, and meets all other criteria, them post the customer ID number, the SS# and the verbiage "FUL Request" or "PTR Request" onto a seperate sheet.
Or the VBA can simply delete the rows that don't meet the criteria listed above.
I am using Chip Pearson's method of importing a text file into Excel (found at http://www.cpearson.com/excel/imptext.htm )
It works great except for one aspect. Two of my columns of data are in the format "dd/mm/yyyy hh:mm:ss", which is very necessary.
I have set the worksheet, the file is being imported into, to the same format. My problem is that, during the import of data, Excel (in it's wisdom) decides to automatically transpose the dd and mm numbers (if they meet the natural calendar conditions i.e. 01/09/2006 becomes 09/01/2006, 09/01/2006 becomes 01/09/2006 whilst 21/09/2006 remains the same).
As you can imagine this causes havok with several other functions that I have running off that source data (once imported). I have looked at the code and, whilst I can follow the general gist of it, I am unable to find any reference to format of the data.
I am looking for a way to ensure that all the leading zeros in one column are present without having to format the column cell be cell. Is this possible?