i am pretty good with VBA after reading a lot of information on the internet but i have a problem i cannot solve:
I have two workbooks with the same sheet names and I am trying to transfer the interior colour of cells from one workbook to the other...
this is the code i came up so far but it doesn't work
With Application.Workbooks(WB1).Worksheets For Each ws In Application.Workbooks(WB2).Worksheets On Error Resume Next For Each cl In ws.UsedRange WB1.ws.cl.Interior.ColorIndex = WB2.ws.cl.Interior.ColorIndex Next cl
The idea came about after wanting to show a 'gold' 'silver' and 'bronze' background colour, but having to plump for yellow, grey and orange looked a little crap :f
If not, can a workaround be created by using code and a picture or 2?
I'm creating a project calendar in Excel and for each task I have a Start Date (A) and End Date (B) in adjacent cells. To the right are corresponding date cells like a timeline set up with 52 cells representing weeks of the year. I.e Week 1 (C) starts at 02 Jul 12, Week 2 (D) starts at 09 jul 12 etc. up to 24 Jun 14 (BF).
Start Date End date 02-Jul-12 09-Jul-12
[Code]......
When a start date and end date are entered in the respective columns, I need to have the color start on the cell for that range in the timeline and that color should carry out to the end date cell in the timeline. A bit like a Gantt chart but not to that detail.
Ok then, I can do this with record macro and it works ok, but im sure theres a nice way to get VBA to do this quicker and make it work for every row.
Story is - I have a spreadhset - which will have data in rows as normal. Each row when completed will have a button which when clicked - creates a new worksheet by copying one already there, then populates this new worksheet with the data from the first worksheet.
Dont ask why I am not allowed to use MS Access for this as its a bit of a long story.
This is what the record macro VBA shows - this works ok as I said but obviously takes a good few seconds and jumps around etc until its competed.
1. Add new worksheet (say ws2) 2. Activate the worksheet ws2 3. Copy a predefined range from already open workbook (say ws1) 4. Select the target cell in ws2 through user prompt by using mouse or keyboard 5. Paste the copied range from ws1 at this location of ws2
I am facing problem in selecting the cell in ws2 as ws1 always remain in foreground.
Sub CreateNewWorkBook(RValue As String) Dim wbA As Workbook Dim wbB As Workbook Dim sTemp As String Dim rRange As Range Set wbA = ThisWorkbook wsName = ActiveSheet.Name Set wbB = Workbooks.Add WorkBookName1 = wbA.Name WorkBookName2 = wbB.Name......................
I would like a Macro that can copy values from 5 rows in a worksheet, starting from Row 1. Each "Batch" copied to a new worksheet should contain values from 5 rows, so first batch would be from Row 1 - Row 5 → copied to Sheet 1 , then Row 6 - Row 10 → copied to Sheet 2 , then Row 11 - Row 15 → copied to Sheet 3 ...... etc. This should be done until there are no values in the last row.
So, the workbook would start off with only one worksheet, which could be named "source" for convenience and end up with many more sheets depending on how many rows are in the source worksheet, which can vary from time to time. There are 3 other "contraints/conditions that need to be considered 1. the number of columns in the "source worksheet may vary from 5 columns up to 30 columns. 2. The formatting that was applied to the values in the "source" worksheet need to be maintained. 3. The data posted should start in cell A1 for each new sheet.
Creating a worksheet to consolidate his financial data. I've been able to muck my way through most of the VBA code by looking at examples on the forum. However, I cannot figure out how to add the last loop or where to place it. I can copy the values from the P&L sheet to the DATA sheet but I cannot discover a way to also pull the values from the BalSht sheet to the Data sheet. I think the BalSht loop will be almost identical to the "P&L sheet loop, and be placed just below it - but I'm not successful in multiple attempts and days of trying. How can I accomplish this?
Here's the VBA code:
VB:
Sub NewISCopy() On Error Goto errorHandler '************************************************************* Dim CopyCol As String Dim PasteCol As String CopyCol = "G"
I have a workbook with lets say 10 sheets. 9 of the 10 sheets are identical as far as layout, they just hold different information for different employees. I need to get a range of cells that are NOT empty and copy that data to the 1 different sheet (summary page). A6 through A25 is where the data is going to be, but all those cells may not be filled up, so I want to drop the empty cells from the range. So If only A6-A15 are filled, then those are the only ones that get copied. ALSO (dont you love that) I need to take that number range and have columns A, F and I as well. So if I have A6-A15, I will need the data out of F6-F15 as well.
I had originally posted this question on another thread since the problem i've been trying to solve is quite similar to the discussion on that thread.
I have a workbook with only one worksheet. This worksheet contains data in only the first column. However this data can be either tab or space delimited. The first few rows are junk data which i am not concerned with. I have a header and footer row and the useful cells are in between these.
What I am trying to solve is this:
1) Add a new worksheet, rename it to "COPY" and place it after the original sheet. This I have been able to achieve using the code below.
Dim PageSheet, CopySheet As Worksheet
Set PageSheet = ActiveSheet PageSheet.Activate Sheets.Add Set CopySheet = ActiveSheet CopySheet.Name = "COPY" CopySheet.Select CopySheet.Move After:=PageSheet ...............
I need a macro that will copy a range of cells, it is always in the B2:B7 range from all the worksheets in a workbook. This is just a sample of the actual workbook, which has 100's of worksheets. The macro also needs to maintain any formatting [conditional or regular].that has been added to a particular cell. The ranges need to be pasted in a worksheet named "content" and arranged in columnar sequence, please see attached sample.
I'm attempting to create a worksheet to consolidate his financial data.
How to add the last loop or where to place it.
I can copy the values from the P&L sheet to the DATA sheet but I cannot discover a way to also pull the values from the BalSht sheet to the Data sheet.
I think the BalSht loop will be almost identical to the "P&L sheet loop, and be placed just below it - but I'm not successful in multiple attempts and days of trying.
Copy and paste each cell below when M is true or greater then 0 to a new worksheet called Price Summary. If cell is false or 0, do not copy. I would like the text in N to paste to the first available row in A and copy M as well to the corresponding B. I only need the values of these cells to copy and not the formulas. Been trying to get this to work for a while with no luck.
Excel 2007MN17$018$01920$021$022$023$024$025$026$027$028$029$030$031$032$033$034$0250# Vessel Pricing TESTWorksheet FormulasCellFormulaM17=IF(L17=TRUE,INDEX(_250lb12inlegs,B2),"$0")N17=IF(L17,"12 in.
I wish to compare each item (4-8 digit alphanumeric ID) in a list in column B of worksheet 1 (Portfolio) to all of the items in column B of worksheet 3 (EssBase Cap). The data (ID) in column B of 'EssBase Cap'! is concatenated with its description so my code needs to strip off the leading zeros and everything after "-" in order to do the comparison. Once a match is found it should copy the corresponding values in 'EssBase Cap'! for that row, column D and E to 'Portfolio' Column J, and K. I have created some pseudo code and need to translate this to Excel VBA
Dim IBSPWD As String Dim ProjectPCN As String Dim Pos As Integer Dim I As Integer Dim J As Integer For I = 3 To 'to end of range ? WHat is the code to find end of the range IE no more data? For J = 6 'to end of range ? The nested for loop will check each item in Portfollio and compare it to each item in Essbase Cap IBSPWD = 'EssBase Cap'!Cell(J,"B") 'fill in the string with data Pos = InStr(1, IBSPWD, "-", vbTextCompare) 'find length of the string befor "-"...............................
How can I copy the Named Range definitions from one worksheet to another in the same workbook? In case it matters, the Named Ranges refer to cells in a third worksheet in the same workbook.
I have a workbook with data in it that I want to copy and put in another wookbook. The data looks like this.
D11/22'2005 CX T-7.80 PEl Azabache LDining Out (blank cell) D11/22'2005 CX T-9.50 PAce Hardware LHousehold (blank cell)
What I want is a macro to copy that data until it finds a blank cell and paste/transpose that data in another workbook and then get the next set of data until an other blank cell.
It should look like this when done.
D11/22'2005CXT-7.80PEl AzabacheLDining Out D11/22'2005CXT-9.50PAce HardwareLHousehold
I have a multi worskheet document and i want to be able to create a macro that will search individual cells in a range on each sheet and if it locates a 3 letter mneumonic (STK in this case), it will then copy that data for the whole row and paste on an additional worksheet. I also need the data pasted on the new worksheet to be protected ie not overwritten when the macro runs again. So this mneumonic could exist anywhere in column A (A1,A500).
1st - Need a macro to change a range of cells colours based on a single cell having a value greater than 0.001. ie. cells A1 - G1 need to change to grey based on cell F1 having a value greater than 0.001 entered in it?
2nd - Also a macro for deleting the text contents of cell C1 based on cell F1 having a value greater than 0.001. Therefor if cell F1 has a number greater than 0.001 it changes the colour of celss A1 - G1 and also deletes the text in cell C1?
I have an excel file that contains a list of all clients and want to add an "Active Client" tab within the workbook. The list indicates some active, some inactive. The "Active client" column shows an x at 1st row or if "Inactive" is left blank. I want to auto populate all "Active Clients" to a different Worksheet without having blank rows or FALSE as the result of the current formula ...
I need a code that will copy any cells with data in range I3:I41 from sheet2 and paste it in sheet1 starting at cell B3. Then copy any cells with data in range I3:I41 from sheet3 and paste it in sheet1 starting at the next empty cell.
how do i go about creating a macro to copy a range in sheet 1 in workbook A and paste that to a new tab(the last one) in the existing workbook B. i would like the tab to be renamed based on a cell value. preferably workbook B doesnt have to be open, and the save and close it
"copy cell range based on conditions" and it didnt really get an answer. There was one that copied the info the next blank cell on that line, but im not smart enough yet to figure out how to copy it over. ( getting there though with lots of staring at code).
2 sheets. I have already created auto modules to fill in data and code,and sorted the columns so they are in line.
Sheet 1. Info : has 9 columns. So if column = 9 and the value = new. Then i want to copy the range on the columns (A:G) and then paste it on the other sheet ( Card info) as long as Column A is empty ( as in next available blank cell) ( something like a DO while worksheet("Card info").column(A) <> ""
Here's what I'm trying to do (improperly apparently!!):
Book1, ''Master'' is the sheet, I'm copying info into, and Company info are the sheets im getting info from each of my .xls files in a folder, ie cell C2. Just in case, to be clear, I have all my vba projects opened from each .xls book, and need to copy, from each .xls book, in Company info, cell C2 into Master column A:
Sub collate_cell_data() Dim dest As Range, wbNew As Workbook, wb
I have one master worksheet named "Season" and 30 other worksheets named "1,2,3,4 and so on to 30". I ideally want to copy the shapes (msoShapeOval) from the worksheets- "1-30" to worksheet- "Season". When the shapes (msoShapeOval) are copied from worksheets "1-30"
I want them to keep thier position that they were in when copied to worksheet- "Season".
The shapes (msoShapeOval) are in range "A1:AZ43" in worksheets "1-30" and would be placed in worksheet "Season" range "A1:AZ43"
I have a worksheet called "Lookup" with several dynamic named ranges (each is 1 column wide) including facility, department, shift, etc. On a summary worksheet in the same workbook I want users to use a dropdown or combo box (don't care what type) in cell B2 to select a facility and then based on their selection, copy the department named range data and paste it into the summary sheet beginning in cell A5 and paste the shift named range data into the summary sheet beginning in cell B5.
Example: user selects "AR Plant" from the dropdown or combo box and the data from the "AR_Rpt" named range is pasted into cell A5 and the "AR_Shift" named range is pasted into cell B5.
I have 10 worksheets. I would like to create a macro to find all the "2" values on worksheet 1, and have the actual range that the cell is, compiled into a list -example: I would like the list to be similar to this= (A1,B15 ,C8)
I even tried to record it but it doesnt show me the actual range that the data is found in.
look for a certain value in worksheet A and copy that row of data to Worksheet B.
However, it seems to be only copying the row in worksheet A and pasting it. Is there something that a noob VBA scripter has missed out?
PHP Private Sub GetInfo_Click() Dim r As Long, LastRow As Long, Status As Integer Dim Message As String, Title As String, Default As String, MyValue As String Application.ScreenUpdating = False
MyValue = Range("A4").Value Workbooks("invoice.xls").Worksheets("A").Activate LastRow = Range("C65536").End(xlUp).Row For r = LastRow To 1 Step -1 If Cells(r, 1).Value = MyValue Then Rows(r).EntireRow.Copy Workbooks("invoice.xls").Worksheets("B").Activate Rows("8").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Status = 1 Workbooks("invoice.xls").Worksheets("A").Activate Rows(r).EntireRow.Delete
Exit For End If Next r Application.ScreenUpdating = True