Vba Select Rows Based On Info In A Column, Then Paste Into New Workbook
Jul 7, 2009
I'm using excel 2003. I would like to select and copy rows of data within a worksheet of a workbook and then paste those rows into a newly created excel workbook. That is the easy part. The complication is that I would like the macro to select the rows based on a particular string value that will be impossible to specify in a fixed way (i.e., it will change from project to project). Let's say the variable that distinguishes the rows is location, so some are from Tokyo, some New York, and some from Paris. Using vba, how can one 'splice' the data into (in this case, three) seperate workbooks based on the string/values of another variable?
I am familiar with auto-filter, but in this case, I really do need to create seperate workbooks, rather than apply calculations to a selection of the data.
It takes an specific word from a certain number of files that you can choose from an add file window. Then when you choose those files the macro starts to run every file and look for an specific word, in this case is "ROFO March 2013".
When it finds it, The macro creates a new workbook( You create the name of that workbook y the first place of the macro, when you choose the files that you want to look for that word).
So, When the macro finds the word ROFO March 2013, it copys all the columns that has that name, and keeps looking until the file ends.
And paste all that info in the new file, A consolidate File.
I have change all the names of variables of the macro so you can understand it.
Code: Sub copy_data(ByVal Origin_File_route As String, ByVal destiny file As String) Dim Origin_File As String, RsBusq As Range, ROFO As String Dim Rango As Range, Fila As Long, lastrow as Long origin_file = Dir(origin_file_route)
I've been using a macro that, among other things, will split a set of data into different sheets based on one column. For example, if I have Column A populated with numbers 1-10, each entry with a "1" in column A gets pasted into a sheet entitled "1", and so on. Some of the numbers I group together (for example, let's say I would group the 2s and 3s together).
I've been using the code below, but it seems to be very fickle. Half the time I run the macro, I get a "Run-time error 1004" and it points to the line "Sheets.Add. Name = WhtSht". Is there a different (easier) way to accomplish what I'm trying to do?
Dim rng As Range, StrtSht As String, WhtSht As String StrtSht = ActiveSheet.Name For Each rng In Range("A1:A" & Range("A65536").End(xlUp).Row) WhtSht = rng.Value If WhtSht = "21" Then WhtSht = "7" If WhtSht = "34" Then WhtSht = "33" If WhtSht = "36" Then WhtSht = "33" If WhtSht = "37" Then WhtSht = "33" If WhtSht = "56" Then WhtSht = "55" If WhtSht = "57" Then WhtSht = "55" If WhtSht = "76" Then WhtSht = "75" If WhtSht = "97" Then WhtSht = "96" If SheetExists(WhtSht) Then Rows(rng.Row).Copy Sheets(WhtSht).Select Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial xlPasteAll Sheets(StrtSht).Select Else Sheets.Add.Name = WhtSht Sheets(StrtSht).Select Rows(rng.Row).Copy Sheets(WhtSht).Select Range("A1").PasteSpecial xlPasteAll Sheets(StrtSht).Select End If Next
I have a workbook with a Cost Analysis sheet, a master menu sheet, and then all the sub sheets. I have coded command buttons on the master sheet, so once a category is selected, it goes to the appropriate sub sheet. On the subsheet is a list of items of varying sizes, and command buttons beside that which will allow the user to "Select" that particular size. Once the size is selected, the verbage in cell B5 plus the verbage (size) beside the selected amount, and the prices (labor and materials) in the next two columns, need to be transferred to the first available blank line, starting with line C5, to the Cost Analysis sheet. I have never done coding before for a Loop (i.e. For i = ???) and am not sure how to get it to do what I want. After they select that, they can pick a command button that takes them back to the master menu so they can continue picking various items until they are through. Then the Cost Analysis sheet will show all the items they picked, (name of item, material cost and labor cost: Columns B, C, & D). Not everything is coded yet (such as selecting a command button to go back to the main menu, because I wanted to make sure I could solve this problem before doing the easy stuff).
I read over quite a few of the previous threads and am not sure how to change them to suit my circumstance. I know some code (VB), but not much. I do not understand the concept of DIM, and how the loop works to make it happen myself, and all the websites I could find were not suited to my situation of copying three cells of data to the first blank cell on another sheet.
I have a file that has two sheets, I have some formulas in the first sheet named "Data",What i would like to have is, If column G in the sheet Data is "Closed", then i want that particular row to be cut from the sheet " Data" and pated in to the Sheet "Done".
I have a spreadsheet and I was wondering if there is a way to copy from a specific range in say A1:A5 in Sheet1 and paste into Sheet2 where the column matches cell A1 in Sheet1.
I am trying to do this in VBA and I was wondering if there is a way to do this.
I've been doing various searches for past few hours and can't seem to find out if one its even possible, the closet I've found on here is to copy row to another workbook.
My question is I have one excel book called level1.xls and another excel book level2.xls, now in level1.xls I have a row of fields filled in and in level2.xls I have a blank form which for example I would like to try programme in VBA from the level2.xls file to click a button and open automatically level1.xls then grab field "A2" value from level1.xls and place it in level2.xls field "L4" then continue using level1.xls "B2" to level2.xls in field "C3" and then continue down when I add more values A3, A4 so on in level1.xls to the same field in level2.xls L4. Steve.
Copy rows from one Sheet to another based on a separate cell value But specifically, I am trying to copy row values from Columns C through column Z in Worksheet 1 of file POHeader.xlsx to row values Columns N through AK in file POReceiv.xlsx when the (Purchase Order #) values in Column A of each file match.
The reason is behind this is - one file has the unique Purchase Order number as the key without associated parts and the other file has the associated part number as the key with purchase order number attached.
I don't know whether I need to use VBA or if I can just use an index and match function.
I am working on two worksheets, in different workbooks. They are both lists of customers and Worksheet 1 is 2500 rows & contains up to date data & Worksheet 2 is 20000+ & includes some that is outdated. Worksheet A data is all contained within worksheet B but I need to be able to update/compare them.
Each customer in worksheet A has two unique identifiers but in B there is only one. I want to be able to add in the missing unique identifier (numeric) from A to B, which will identify which customers are still active from worksheet B.
I have been trying to do a VLOOKUP so I can insert the relevant data from the cell from A to B but I'm getting a N/A error. My formula looks like this:
I have a column that has different SIC codes in it (00045, 00046, etc). I would like to set up a macro or filter that would take cells in this column and delete each row that contains a certain code that I don't want.
Example, I want to delete all the rows with SIC codes that have 00345, 00873, 00145, etc in a particular cell. I would like a macro that would look at each cell in the column and delete the rows that I don't want.
I am looking for some code that would copy lines of data if the following to criteria are meet into anouther workbook caller YTD at the bottom of the data to provide a YTD summary.
If column h if marked "y" and todays date ( currently have a =Now() ) is 7 days or more thaen copy and paste to new workbook removing it from the current sheet.
I have an invoicing spreadsheet, what I want is to have a main working page and then tabs after separated by vendor, but save myself a bunch of manual work in the future.
I want to be able to work in the main tab and the other tabs automatically update with the new info.
So I want the macro to search the text in the first column and if it finds "AIM Land Services Ltd." then I want it to populate the appropriate tab, in this case "AIM", with all the respective information after it ie: A-O. But I dont want it to select any other vendors/ info.
This is what I have:
Sub MoveData() For Each cell In Range("A1:A1") ' Where to look for the date If cell.Value = "AIM Land Services Ltd." Then ' The date Range("A5:O350").Select ' What is the range to copy Selection.Copy ' Copy it Sheets("Invoice_Log").Select ' Select the Sheet it applies to Range("A5").Select ' Where to paste the data
I have a workbook that has multiple functions. One of these function is that when the user select a key word from a drop down validation list, a VB code transfer all information from that row from Column A to column W to the next available row on another tab.
VB: If Not Intersect(Target, Range("X:X")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False
If LCase(Trim(Target.Value)) = "yes" Then
[Code] ....
Is there a possibility to transfer this information into another workbook. Instead of transferring the info to a tab name "Archives" to transfer in another workbook. This workbook will only have one tab called "Archives".
This will minimize the information within my Initial workbook in project.
The path in the new workbook where the information should be transfer should be in:
"C:Documents and Settings"username"My DocumentsMy Data Sources" to an excel workbook that will be named Archives.
I know that the "Archives" workbook need to open then close after the information has been inserted...
I am trying to move a column of numbers based on the information in another column. I've been looking for about a week and find macros that are close but not quite.
In one column it reads Mobile, Home, or is blank. If the number is a Mobile (column R), the area code (column P) needs to move to column S and the phone (column Q) needs to move to column T and the primary phone (column R) needs to move to column U. Home and blank cells remain as they are.
area (P) phone (Q) primary phone (R) col S col T col U
I want to delete the rows if they do not equal "TL" based on certain criteria, but save the info then delete the rows if they do not equal "Fedex" based on certain criteria, but save the info then delete the rows if they do not equal "LTL" based on certain criteria
After the information has been filtered it is supposed to load to a template giving monthly information for each of the above, but this is not working
VB: If Load = "LTL" Then Range("A2").Select Selection.Sort key1:=Range("F1"), order1:=xlDescending, Header:=xlYes For x = 2 To TotalRows If Cells(x, 6).Value > 10000 And Cells(x, 1).Value = "FEDX" Then
[Code] ....
I am pretty sure that my problem lies within the parenthesis where it says Rows("2:" & x-1).Delete. Am I supposed to put something else there since I am deleting rows based on three different loads?
I have a workbook with a single worksheet that has about 2000 rows, columns A, B, C, D, E & F Cells in colums A, B, C, E & F all have very different information in them, nothing is similar in any of those columns that I can base a criteria on. Cells in column D however will have 1 of about 18 possibilities in them
What I want to do is have another workbook with 18 worksheets, each worksheet named 1 of the 18 possibilities, and somehow magically pull the data from the first workbook and insert it into the correct worksheet in the second workbook, leaving the data in the first workbook intact.
I update the first workbook several times a day, adding and deleting from it so would need to update as it goes, or be able to run the update as and when needed.
My skills are limited to simple formulas inserted into cells and dragging them down!
I need to create a data base from figures extract everyday. I would like according the date to copy the figures in the sheet "Extractor" to paste in the column corresponding to the day of today in the sheet "Database". If possible as well, the figures of the dates before today must be delete (in the color tab)
I join a sample of what I have. I tried with the indirect function, but didn't find how to keep the figures of the previous dates.
how does one go about finding a specific valuein a worksheet, then selecting the value in the next column, then pasting the value in a different worksheet? For example, I want to find a particular person's name in a worksheet, upon finding the name, I want to select the number associated with the person which is in the column to the left of the name. I then want to copy and paste the number in a different worksheet.
I am making a worksheet that I intend to use to track my money. When I first open the worksheet, it opens on a tab where I can click a button to report a type of transaction. For example, if I make a withdrawl from the bank for $50, I click the button, it takes me to the sheet that tracks my bank-related stuff, selects a cell and opens up a form, at which point I type in what the transaction consisted of. However, the sheet also tracks what is in my wallet, so I'd like to finish reporting the bank transaction in the form, and have a button to click that reports the wallet part automatically.
So, essentially what I need to do is select several non-contiguous cells that are in the last row of the bank sheet, copy them, switch to the wallet-tracking sheet, and paste them in a row that is one past the last row of that sheet. The paste should keep the cells next to each other, even if they were non-contiguous when they were being copied.
I have a workbook made up of 10 worksheets or so. Each of the rows in each worksheet includes the age of a case in column H. I want to copy the rows that show a case that is over 90 days of age, I then want to paste these into another worksheet. I want to do this for each of the ten worksheets.
I have a ListObject table called Table1, and the column name is Table1[Company]. The records have been sorted A-Z for the Company.
The records look something like this
Date Employee Company ------------------------------------------- 1/1/11 Jane A Company 1/1/11 Jane B Company 3/1/11 Bob B Company 2/1/11 Bob B Company 4/1/11 Bob B Company 5/1/11 Bob C Company
What I need is a sub() to look in the column of Table1[Company] and determine:
The # of records that match the criteria given the Company name, and where they start and end. Ultimately, I'd like to copy and paste this portion of the table to another spreadsheet.
So for instance, if the Company = "B Company", then I could find out there are 4 records and there locations to copy and paste them.
I am trying to find a macro that can search a sheet for any cell that contains the text "Not on AOI" selects a range that contains that cell, 81 rows below, and 2000 columns to the right, then cuts the selection and pastes it 162 rows below the original cell where the text was found. What's hard is that the number of columns between the "Not on AOI" cells is variable.
I'm very new to excel macros and the parts I think I've put together are:
I have a macro that automatically takes data from one sheet, copies it and pastes it on another sheet, but I want it to select the empty column that is to the right of the last column to contain data (so basically the next empty column). What code would I enter into editting my macro to be able to do this please?
Also, one thing I've tried to do with my macro is that when I select the data, it's suppose to select from the first name to the last. When doing the actions for the macro, I use "Ctrl + Shift + Down Arrow Key" to make the selection select the bottom of the list. However, when running the macro, if the list is longer (or shorter), the macro selects that number of cells instead of the action of just going to the bottom of the list. For example, if during the actions of the macro, I recorded using the Ctrl + Shift + Down Arrow Key that 50 cells were selected...next time if I have 60 cells, only 50 are selected, even though I used an action command which should select all the cells in that group (in this case being 60). Is there some code I can add to that so this would work correctly?
In case its required, here is the code from the macro:
I have 2 workbooks. The workbooks have 36 tabs for each department. Workbook 1 are current charges for the departments and workbook 2 is the revenue for each department. I would like to take the top 2 rows from workbook 2 and add them to workbook 1 at the bottom of each tab. I was able to get it to work to a specific row but the workbook 1 has variable rows for each tab.
I need to build a macro which copies 3 rows every day and pastes the row data into an identical sheet. The three rows will have column "D" as =today(). As the days progress the three rows will change accordingly ( tag to the today's date)
e.g. 28/1/2014 28/1/2014 28/1/2014
I need the macro to recognize the date when pressed and copy the corresponding rows of data and paste them into an identical sheet with the same date. The second sheet is an archive sheet. The date will tick over as per the calendar.
I am having trouble getting the selection of sheets to work. I have a workbook that has multiple sheets and one constant sheet (Summary). There is code to create new forms in this workbook and insert them after the Summary sheet. These forms all have a date input that is formatted as a date (mm/dd/yyyy), these dates get modified on the day the form is created, there may be any number of sheets created during this process. I have to print the summary sheet and only the newest forms created. I need a code to select sheets to print based on the date input of a user for each form. This is what I have so far:
VB: Dim i As Variant i = Range("B5").Value >= InputBox("What date to start PDF from? Format = mm/dd/yyyy") Sheets(Array("i")).Select [code]....
If the dim can be taken out and just included in the line for the array that would be fine with me. The cell "B5" is where the date is located in each form. I want to input a date and the macro will select the sheets where the date is equal to and greater than the date entered. The Summary sheet will always be included in the print set. I have a dialog box for setting which printer to use - this file will be used at different offices and therefor the printers will be different and it will also allow to create a PDF if desired.