In an Excel worksheet, cell C1 contains a date. I would like a macro that checks the date in C1 and if the same date is mentioned in row 3, then copy all matching date data beneath it from D6 downwards, paste to Sheet2, cell B3 and also copy column A downwards from row 6 to Sheet2, cell A3.
Use Excel's macro recorder to record your keystrokes and mouse actions (as Excel actions) then inspect the resulting macro. Using Excel's help, check the topic Create a macro or visit http://office.microsoft.com/en-us/excel-help/create-a-macro-HP005204711.aspx. This will get you started.
are you checking the date in C1 against any column in row 3? or in D3? or C3? It is not clear.
copy A6 down and D6 down, but switch column D to B on sheet2 and A to C on sheet2?
This could be easy if it were clearer what you are checking.
Related
Currently taken over a new role at work and I'm wanting to make my job a lot easier.
I have three sheets within one workbook.
Sheet 1 - Config
Sheet 2 - Overall
Sheet 3 - This Week
What I want to do is depending on the date in sheet 1, I want it to find the corresponding date in the headers on sheet 2, and then select the data in the column and paste it to sheet 3.
For example: If Sheet 1 is 13th May 2018
Sheet 2, D2 - D4 will be copied to Sheet 3 B2 - B4
Is this possible in a macro?
Thanks!
Why not simply use a formula ?
In Sheet3, range B2 :
=OFFSET(Sheet2!$A2,0,MATCH(Sheet1!$A$1,Sheet2!$A$1:$F$1,0)-1)
You can copy this formula in Sheet3, range B2:B4
Two things to check :
The format of the date you are looking for.
The size of the range you are looking up for that date. Column F might not be the last column of your data.
I am having an issue in Excel dragging to fill in formulas. I have formulas in rows such that each row has a different formula which reference to rows/cells on other sheets.
Let's say on Sheet 1, the formulas in the cells C2:C9 pulls data from Sheet 2 from cells C4, G4, H4, etc. If I highlight Sheet 1 cells C2:C9 and then click to drag down to form another group of formulas in cells C10:C17, the formulas inside change their reference by 8 rows such that if Sheet 1 C2 pulls data from Sheet 2 G4, the next similar formula in Sheet 1 C10 ends up pulling data from Sheet 2 G12.
This is the problem I am having; instead of the formulas changing to reference every 8 rows, how could I make it so that it only changes by 1 row instead? Or, for every new group of formulas dragged and filled, change the references in those formulas only by 1 row. If there is still confusion, consider if the cells C2:C9 were merged as a single cell. Even if you dragged that formula down, the formula inside would still change by 8 rows despite only forming 1 cell each time.
As far as I am aware, there is no built-in Excel function to do this and I believe the only way to do this would be some VBA code, but I am unfamiliar with VBA language. Since this would be a one time thing, the VBA code could either apply this 'row formatting' as I click and drag, or the VBA code could just automatically fill in the cells for me.
Use INDEX() and some math:
In C2 it would be something like:
=INDEX(Sheet2!C:C,(ROW(1:1)-1)/8+4)
Where 8 is the spacing of the formula and 4 is the first row desired to return.
C2 would return Sheet2!C4, C10 would be Sheet2!C5
Using this you can modify the other formulas to return the desired pattern.
I have a formula that will copy values from one column on Sheet B to another column on another Sheet A. What I'd like to do is highlight the cells that were copied on Sheet B and highlight the cells in Sheet A that are not on Sheet B, essentially the inverse of the first part. On Sheet B only columns G and H would be highlighted but Sheet A could be from column A to H.
=IFERROR(INDEX(Sheet2!G$3:G$7,MATCH(1,INDEX((Sheet2!$D$3:$D$7=$A3)*(Sheet2!$B$3:$B$7=$C3),),0)),G3)
You could set up conditional formatting with the same logic to change the colour or either the cell that you are setting or the one that you are copying from.
Beware: this kind of code can make your spreadsheet very slow if over used.
So in one range (sheet 2) , you would have conditional formatting set up to highlight the cell if
this match failed
MATCH(1,INDEX((Sheet2!$D$3:$D$7=$A3)*(Sheet2!$B$3:$B$7=$C3),),0)
In the other range (sheet 1 a:h)
you would highlight if ISERROR(INDEX(Sheet2!G$3:G$7,MATCH(1,INDEX((Sheet2!$D$3:$D$7=$A3)*(Sheet2!$B$3:$B$7=$C3),),0)))
has picked the value from sheet2
I may have incorrectly butchered your code, but you should get the idea. Where you currently have a range of values, select the range, insert the conditional formatting, but edit the range to only check the first cell, it will automatically increment for you (if you remove the appropriate $ signs)
conditional formatting intro
I'm trying to compare two Excel sheets, Sheet1 column O to Sheet2 column A:M, if it found a match, it will copy Sheet 2 "down cell of matched data" (ie match data A3, copy A4) then paste to Sheet 1 column R. I'm (very) new to VBA and Macros so I don't know how to do this. Thanks in advance!
In sheet 1 of column O - datas are USD,JPY,TWD, etc. In sheet 2 column A to M, a specified exchange rate per currency. If sheet 1 column O data is USD, it will search in Sheet 2 with matching "USD"; if cell A3's data is USD, the exchange rate is in cell A4 which will be copied and pasted into column R of Sheet 1 corresponding to the row of USD.
So what I'm dealing with is something kind of like this:
This is what I’m looking for after the macro
Since Sheet 1’s cell O1 matches Sheet 2’s cell A3, I want it to return Sheet 2’s cell A4’ s value and paste it to corresponding row of Sheet 1’s cell R1.
Let me know if this makes sense or if you need further clarification.
Thanks!
Most of the code you need you can manage by yourself using macro recorder:
Start recording new macro
Select cell O1
Copy selected cell (by pressing RMB or ctrl+C)
Go to Sheet2
Select your data (A3:M7) with mouse
Press ctrl+F to open "Find" window
Paste value of copied cell
Press Enter. Cell with searched value should be selected
Press down arrow to move selection one cell down
Copy value from selected cell
Go to Sheet1
Press right arrow to move to column R
Paste copied value
Stop recording the macro
After that you need to find how to use For loops and add it to your code. Good luck!
This question already has an answer here:
How to make excel automatically fill a value in a cell of a sheet when another corresponding cell of another sheet is filled the same value?
(1 answer)
Closed 8 years ago.
I have cells A1 and A2 in sheet1 with values 3, 4 respectively. I link the cell A1 and A2 to B1 and B2 in sheet2 respectively. I mean when A1 and A2 change, B1 and B2 change accordingly.
This is what I want to manipulate my spearsheet: When I add value 5 in cell A3 in sheet1, value 5 is also added in cell B3 in sheet2.
Without filling =A3 in B3 or using autofill, how can I do so?
Imagining that each time when you make a report you have to add a lot new cells -- A4 to A100 --, that the number of cells is varied each time, and that you have a lot of corresponding sheets to sheet1 -- sheet2 to sheet100 -- you will find why I need your help.
The best solution to your problem is to select the sheets on which you want the values to appear in corresponding cells by holding down the control key and clicking on sheet tab. So when you make an entry on Sheet1 in any cell the same appears in the corresponding cell of another sheet (s) selected.