Looping, Open Text File, Copy Text, Close Text File
Sep 18, 2009
I have an existing spreadsheet with a column of strings (actually VIN numbers). These numbers correllate to a bunch of text files, that can exist in one of three folders (UsernameDesktop1, 2, or 3) on my desktop. What I need the macro to do is:
1) get the filename from A2 (A1 is a heading row)
2) Find the appropriate text file in one of the three folders
3) Put the folder name into I2
4) Scan the text file for some strings, and copy some data that follows those strings into J2:O2 (I can handle programming this)
5) Close the text file
6) repeat above for the remainder of filenames (about 1800 files)
I'm using excel to parse txt a file with account numbers in it. If it finds a dodgy number I want it to delete the entire line in the text file. I have manage to write the code that opens the file and locates the dodgy numbers, however I'm not sure whether it is posible to select the line and delete it.
I've encountered a bit of an odd one. I am opening a tab delimited file, which has been sved as an xls. When I open from file manager, it opens correctly. When I open from Excel, I have to go through 3 screen dictating how the data is set up, and the end result is that a couple of the numbers come through as text, rather than numbers.
Failing an explanation - how do you open workbooks as file system objects - currently I am opening them using
I am trying to inch my way forward to writing a macro that will read in an external CSV file into a sheet (my next task will be to spread the date between multiple sheets based on regions). My first attempt at code is the following
Sub read_csv() Dim strLine As String Dim i As Integer Dim filename As String Dim ans As String filename = "C:Documents and SettingsMichaelMina dokumentMina datakällorD123905.csv" Open filename For Input As #1 i = 1 While Not EOF(1) And i < 10 Line Input #1, sLine ans = MsgBox(sLine, vbOK, "hello there") i = i + 1 Wend ' Close filename End Sub
A couple of problems arise. When I debug the code, if I remove the comment on the close filename, the debugger complains with error 13 (incompatible types). If I comment the line and try and run the code twice in a row, I get a complaint about error 55 - file already open. I'm guessing that the close filename is the correct syntax - if it isn't, what should it be??
Got a slight problem; I am making a "worker-plan", where you should be able to write a name on one file and have it updated (removed) from the equivalent columns on another file automatically. Here's an example with two separate projects:
Project 1 before and after changes: Attachment 257366 Attachment 257367
Project 2 before and after changes: Attachment 257368 Attachment 257369
You can see here how I intended it to work. When one worker is moved from Project 1 to Project 2, that worker should also be removed from those weeks in Project 1. The previous worker from Project 2 should also be removed from those weeks (in Project 2).
Are there any formulas that can make this work automatically? All week numbers will belong to the same columns in all files.
Edit: There are 30 files that should be syncronized, not just two.. I could also gather all files into one file with sheets, instead of having seperate files.
I have a macro which imports data from a mainframe dump text file and performs 'Text to Columns' on the imported data so that formula in the spreadsheet can act on the data. The code works perfectly well when I use it, but if a different user logs on and performs exactly the same mainframe dump and import macro the Text to Columns action splits the raw data in a different way and the result is that the split renders the formulae useless.
I've experimented a little and for some reason it appears that the 'Field Info' parameters which are produced when the Text to Columns function is recorded in a macro differ between users even though the raw data is exactly the same.
I do have the below code to safe a file and close it:
Sub Save_Close() ' ' Save_Close Macro ' ' ActiveWorkbook.Save Application.Quit End Sub
I would like to do additionally something else. I need a macro to do the above, but it should first check if cells A2:C9 do contain text. The text could be anything.
If there is text in ALL the cells, then the macro should save and close the file. If there is text missing in at least one of the cells, a message box should appear saying 'Please fill out all cells'.
I call it from a macro. It is supposed to write some temporary files, and close them in the end, and delete them. Sometimes, the dll can't close properly, and the text files remain open.
With error treatment in my macro, I can continue execution, but i need to delete that files.
Since the dll DOES NOT CLOSE the files, i'm not able to delete them in my macro.
I need some way to close that files, in order to delete them.
When I use GetFile to reference the file, it remains as "File", which does not accept "Close" method. I can reference the file with myfile.OpenAsTextStream, but this way it seems to me that the file is opened again, and the "Close" method does not work either, with the file defined as a TextStream object.
If I close excel, I'm able to delete those files, but that's not the way I want. Since IT'S OPEN IN EXCEL PROCESS, I imagine there's some way to close it.
I am trying to open a txt file, but I get an error message that says "Run-time error '52': Bad file name or number. The file name is correct. I tried two ways to pass the name -- as a variable and from Application.GetOpenFilename("Text Files (*.txt), *.txt"). The line where VBA complains is "Open fileToOpen For Input As #InFile"
I am writing a macro that creates a text file and inputs data into it with a for loop. Is it possible to actually open the text file window after entering the data so that the user sees whats inside the text file?
I have created a macro that auto generates SQL code based on user input from a worksheet. The SQL script is written to a text file. I would just like to visually open the text file with notepad when the macro is finished executing.
I have a large text file (greater than 64k lines) which I need to import into excel. I only need anything imported from the text file that is for dates I specify. So I would like to run a line by line query and only import the lines I need.
The dates are always in position 43-50 (dd-mm-yy) in the text file itself, so the code would have to look at that section, see if the date is within the range specified and only import if it is (and then move onto the next line).
I work for a company that has about 650 locations. Each location has a location manager that is responsible for submitting a Performance Review spreadsheet for all the employees at their location.
Currently I have an Excel file that has all employees/locations. One of the columns on my spreadsheet is "Location ID"...which is literately a number we've assigned to our Locations. I have an Excel template saved that I'd like each Location to open into.
Can someone help me? I need each location to be it's own spreadesheet...which I have a template created already. I'd prefer to find an automated way to do this...rather than manually creating 650 spreadsheets.
I'd prefer to do this in anoter application, such as MS Access, but senior management already made the decision this will be done in Excel...so I'm stuck with what I got.
I want to create a Macro to open a file based on the data of a particular cell to update the data for macro file from that file.
For example I have 3files named Dept1, Dept2, Dept3 and I have one more file named Cost Sheet which contained macro and based on the cell D2 of my macro file I need to open the particular file i.e Dept1, Dept2 or Dept3 and the updated procedure and cell ranges are same for all file
I have a folder that has a bunch of text files in it with numeric names (they are store numbers 2, 3, 165, 188, etc...). I need to open those files (in excel), run a macro on them (this portion of the macro has already been created), and then save them with the same name as the txt file but in an xls format and close. It would be great to have the whole folder process automatically but I am willing to start small. Further, I'd like it to not ask for a filename, and I don't want to see the SaveAs dialog box. So far I have been able to get the macro to run through the my processing of the text file all the way to the SaveAs portion, but the code in my macro opens the SaveAs box and puts the filename of the txt file in the file name box in quotes with the txt extension. Below is the code.
I am looking to automate a process where information is sent to someone in a text format and they in turn transfer that data to an excel file. It basically looks like this (but includes a lot more info):
Service Request #: 123456 Instrument Type: New Instrument Lot/Serial #: 123456 SR Type: Product Complaint Service Coverage: Maintenance Agreement
The info on the left (text preceding the colon) is always the same but the values following the colon can change. The excel file has all of the text before the colon and they just enter the information into the cells. I am looking to make it so that an Excel macro (or maybe a word/outlook macro) automatically scans the text document and sends this info to the exact same cells in excel every time.
The text file is actually a message from an Oracle database and I am not going to be able to make any changes to the way the data comes in.
Is there a way to open a text file from Excel 2010 and specify that I want it in .xls format?
I am working in compatibility mode, and expected that when I opened a text file from code within an xls file, the text file would have 65,536 rows, but it has 1,048,576. This causes a problem when we try to copy the sheet with the data from the text file, and insert the sheet into our xls workbook. See code below. The error is: Run-time error '1004': Excel cannot insert the sheets into the destination workbook, because it contains fewer rows and columns than the source workbook..
I know I can get the data other ways (such as copying and pasting only the cells containing data) but I was hoping to make minimal changes to the code below as I will have to make it across several templates. Specifically, I was hoping that there was a qualifier I could add to the Workbooks.OpenText statement after "Tab:=True" - Perhaps something about opening the text file in File Format 56. However I have not been able to find out how to do that.
- I have excel file with data I need - I have fixed txt(html) template that i need to integrate Excel information into - Final result that I want to achieve is saved .txt(html) file with combination of fixed information (text) and data from excel cells.
I need to writing a VBA code for each of above (integrating text & cells, saving results as text)
I'm trying to take a large text file and break into smaller text size files. I want to open the data file, and parse into 5000 line smaller files.
Here is what I have based off of some MS KB Sub LargeFileImport()
'Dimension Variables Dim ResultStr As String Dim FileName As String Dim FileNum As Integer Dim Counter As Double Dim CounterMax As Double Dim sPath As String Dim FileCounter As Double 'Output File
I am trying to automate in VBA the process of importing of txt file to Excel range. The columns widths are not static. So I can't use recoded code of Text to Column wizard process as columns alignment arguments, (ie FieldInfo:= Array(Array(0, 1) would need to be changed daily. I have also tried to import the text in one column and then apply a code of TextToColumns to automatically split the text by multiple columns. But some of the text would be moved to the left under wrong column titles. I think this is because the text is not tab or comma delimited. It's just aligned using multiple spaces.
Is it possible to write a code to split the text by columns based on alignment of 2 first rows. For example, import rows 6 and 7 from the text in one column, then apply texttocolumn method like this: