Copy Data Columns From CSV Paste Into Next Available Blank Space
Jul 10, 2014
I have some data from many csv files.
I would like to record/create a macros to open the file and paste 4 columns worth of data into another spreadsheet. Making sure the data is pasted in the correct column and doesn't overight data already in a tracker. Ie. paste it into the next available space.
I have been tinkering with a code for a few days now and managed to finally get it working . The Code basically copies data from one spreadsheet (Macro Tester6), opens up another spreadsheet (Macro Tester Master), pastes the data, Saves the file (Macro Tester Master) and then closes it.
The Macro Tester6 file is then left open as I prefer.
The problem I have is that the data always paste into the same row, hence overwrites data already inserted.
the code finds the next blank row to paste the data in.
My code is:
Private Sub CommandButton1_Click() ' select current workbook and paste the values starting at A1 Windows("Macro Tester6.xls").Activate Sheets("Sheet1").Select Sheets("Sheet1").Range("A1:I1").Select Selection.COPY ' open the source workbook and select the source sheet
The task I have in front of me is that I have a very large spreadsheet (28,000 +rows) that has data that was exported from a legacy system that we no longer have. It has data in columns A thru G. I must get this data prepped to have ready for importation into the new system. What I'm trying to do is copy the data in cell A and cell B, everytime the value in column D = 1, and insert one blank row above and copy the values from cell A and cell B to cell A and cell B on the newly created row.
Below is a picture of what I'm trying to capture:
I thought that a macro would be a fairly easy way to do this, but it's proven challenging for me to write. Here is what I attempted using the macro recorder:
Sub moveit() Dim MyRows As Double Dim TotalRows As Double Dim Counter As Double Dim StartRange As Variant Dim Newrange As Variant
MyRows = InputBox("This macro will copy and paste the current data into mupltiple columns. Make sure that you have at least one cell in the targetted region of data selected. How many rows deep do you want the finished data to be?") - 1
I have a macro that would check data in Column A and validate if a particular number is repeating, then for that number go to column B, Take the Values from there go to a new sheet and paste the values in a row.
Tabs 1, 2 and 3 have a column of data (Column A) on each sheet. They all start from the same cell. Each cell of data are just numbers. The column (an array) of data will not have blanks between.
But, they are not the same number of data. They vary.
Meaning, Tab 1 may have 15 numbers (A1 to A15), Tab 2 may have 20 numbers (A1 to A20) and Tab 3 could have 5 numbers (A1 to A5). Each iteration of the workbook may have different number of data in the A column on these tabs.
Now on Tab 4, I want combine the data from all three tabs into one column (in column A).
So, Tab 4 has a column A with data from Tab 1 copy and pasted to (A1 to A15) as values, then (A16 to A35) have Tab 2 data copy pasted as values and (A36 to A40) have Tab 3 data copy pasted as values.
Basically, the macro on Tab 4 has to count the number of rows on each Tab that are populated with data values and figure out to copy all the data on Column A from each three tabs and paste the data value into the Tab 4 in one column of data (in values).
I have data in some of the cells within range A26:A39
These cells are populated via an IF function on another worksheet. Even though the cells appear blank (as in the value returned is ""), there is a formula in these cells. I think it's called formula blank?
I am looking for a way to copy the data from the cells within the range which are not blank (ie: not = "") and paste this data elsewhere on the sheet in a list with no blank spaces in between.
I anticipate that there will be 4 non blank cells within this range.
Ideally I would have data from the nonblank cells copied and pasted to cells A40 A41 A42 A43
I have a software package that requires serial number effectively data to be entered in a particular format.
As this can cover hundreds of lines I would like to make it less tedious to enter, and as my MACRO knowledge is very basic.
The data starts off in format below in example 1. After the data is CUT from the .html or .pdf document and PASTE into EXCEL. I would like the MACRO to start by pressing an activate button within EXCEL,
The serial numbers always have four digits with single serial numbers being separated by spaces and ranges being separated by a hyphen with the odd carriage return depending on how many numbers there are.
I would like the data to end up in two separate columns as shown in example 2.
Example 1 (Starting format) * indicates space - indicates a range, this needs to be separated into two separate columns
I'm working on this macro that copies data on sheet1 from A2:AI2 till the last non-blank row in the same range i.e. A:AI and paste it on sheet2 in the first blank row. However, my code keeps picking up A1:AI1 from sheet1 as well and pastes it on sheet2 just before the data that I actually want to paste. Here's my code:
In a column, there are data, but in between of each data in a column, there are many blank cells. I would like to do a copy and paste of the first data, and paste it in the same column column, while the cells are blank, and stops when there is a cell with a data, which is different than the previous one, and do the same again and again.
I am looking for a macro that will open a file called File1.xls highlight only the cells in columns A:B that have content, then toggle back to another file called File2.xls, scan columns A:B, find the next blank cells within A:B and paste.
Here is a sample of what i am looking for:
Macro to scan File1.xls and find & copy only cells in columns A:B that are not blank.
File1.xls _|__A_ |__B_| 1|_text|_text| (Copy) 2|_text|_text| (Copy) 3|_text|_text| (Copy) 4|_text|_text| (Copy) 5|blank|blank| (DO NOT Copy)
Toggle to File2.xls, scan columns A:B, paste content copied cells from File1.xls in next blank cells in columns A:B of File2.xls.
File2.xls _|__A_ |__B_| 1|_text|_text| (Pre-existing text) 2|_text|_text| (Pre-existing text) 3|blank|blank| (Paste Row1 from File1.xls) 4|blank|blank| (Paste Row2 from File1.xls) 5|blank|blank| (Paste Row3 from File1.xls) 6|blank|blank| (Paste Row4 from File1.xls)
What I have are dates in Column B with a lot of blank rows in between. For example: cell B2 has a date in it and then the next date would be on cell B54. I need a macro to copy cell B2 until it finds a new date (which is in cell B54) then copy the date in cell B54 until the next date again.. so on..
I have a workbook which has data in column A. I also have data in column I. What im trying to do is copy and paste the data from column I to A but if the cell in column I is blank I need that ignored and the data thats in column A at pres kept.
Data range is A2:A301. From this range sometime all and sometime selected data is required to be copied in another column for example C2 downward. What is needed: select the range from A2:A301 with an input box then the required data to be pasted in C2 downward but with a blank cell after four cells.
C2 C3 C4 C5 blank C7 C8 C9 C10 blank and so on.
I'm doing it Ctrl+C n Ctrl+V but that is very time consuming.
I want to copy the data in "Sheet1" without the header and paste it in "Sheet2" but only paste it in the first blank cells because i sometimes have data in "Sheet2". i would also like to paste it as paste special method when pasting. See attached for details.
I'd like to have done is to have a blank column inserted between columns W and X(these values change so the VBA statement should reference the end of the columns) and the values that are now in column Y(April 17th values) pasted as values into the now empty column X. I would like to do this for tabs Ann-Sheet 2. I'm having a bit of trouble with setting up the loop that would go through the desired sheets.
I'm trying to copy the non blank cells in an area ("B120:K239"). and special paste (values only) to the next blank row of the actual work area (3 pages) within the worksheet. The area that this needs to paste to is between("B10:K29, B44:K63, B78:K97"). Problem is that if there are more rows to be copied and pasted then there are open rows on the first sheet it gives an error due to the rows outside those areas having different formats (merged cells and that)
Question: Is there anyway to special paste between ranges? I've tried to hide the inbetween rows and that still doesn't work. Could it be possible to add something to this code to ignore hidden rows or to only paste to visible rows?
Sub Special_Paste () Application. ScreenUpdating = False With Range("B119") . AutoFilter Field:=2, Criteria1:="<>" With Range("B120:K239") Application.CutCopyMode = False .Copy With Range("30:43") .EntireRow.Hidden = True With Range("64:77") .EntireRow.Hidden = True Dim NextRow As Range Set NextRow = Range("B97").End(xlUp).Offset(1, 0)...............
What can I add to the macro I already have in place (below) to accomplish what I'm looking for (2 parts)? ...
1) I need to copy everything (formulas) that is in C7:F7 and paste it down to all "active" rows - I'm defining an active row by any row where column A is not blank.
2) I need to copy everything (formulas) that is in Q7:AF7 and paste it down to all "active" rows - I'm defining an active row by any row where column P is not blank. (You'll notice by the screenshot that there will be blank cells in column P mixed in with non-blank cells.)
I have a worksheet with some info that is filled in from other employees. I have Customer Name, Date of Oldest Invoice, Avg. Days Beyond terms in column N42:N44, with the data in column M42:44. I want to copy and paste that into another workbook, I need to transpose the data and then paste it into the next blank row. IF POSSIBLE, I would like to have some of the column headings the same as the above fields, and I would like to paste the data into the correct column heading.
Currently I have the code listed below. It copies the data, opens the spreadsheet, (this is where it fails) find the next blank row and transpose and paste the data. It does transpose and paste the data but it does not look for the next blank row, instead it just transposes and pastes the data in the last cell that was active when the work book was closed.
Private Sub CommandButton1_Click()' Paste Macro ' Macro recorded 5/14/14 ' ' Range("O42:O47").Select Selection.Copy
Workbooks.Open Filename:="L:Financial Services! FRA !! Preston !3rd Party Collections Accounts 2014.xls"
When using SUBTOTAL for counting values in a column, well this function is counting also the blanks cells having space inside
Well i can use an COUNTIF to avoid this problem, but when using autofilter , the count is gone, that's inconvenient.I can use autofilter to select blanks and then delete space inside but is quite long.
I chopped a macros inspired by jindon:
Dim X As Integer Dim r As Range X = CLng(InputBox(Prompt:="Quelle colonne?")) If (X < 1) + (X > Columns.Count) Then Exit Sub lastRow = ActiveSheet.Cells(Rows.Count, X).End(xlUp).Row For Each r In Range(Cells(1, X), Cells(Rows.Count, X).End(xlUp)) If r.Value = "" Then r.Value = ClearContents End If Next
At the top of my spreadsheet I've got the date displayed using TODAY(). In 'G5' theres a proposed collection date. In 'F5' I entered, =IF(G5>$D$1+1,"PENDING","NOT COLLECTED"). Which is fine except, if 'G5' is blank I want 'F5' to be blank also. And if a date is removed from 'G5' I want 'F5' to be blank. I've tried various things with "" but I cant get it to do what I need. I'm sure this is very easily cured, but not by me clearly..!