Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I'm looking for help with a macro that will allow me to find every row in
column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: I'm looking for help with a macro that will allow me to find every row in column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Did you intend to include a suggestion?
"sebastienm" wrote: -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: I'm looking for help with a macro that will allow me to find every row in column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi,
Try the following code. ''' ------------------------------- Sub test() Dim c As Range Dim result As Range Dim firstAddress As String ''' find all FC cells With ActiveSheet.Range("B:B") ''' <<<<< Range to search Set c = .Find("FC", LookIn:=xlValues, lookat:=xlWhole) ''' <<<<< what to search for If Not c Is Nothing Then firstAddress = c.Address Do If result Is Nothing Then Set result = c Else Set result = Application.Union(result, c) End If Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address < firstAddress End If End With ''' copy/paste If Not result Is Nothing Then ''' if some cells were found For Each c In result.Cells Set c = Application.Intersect(c.EntireRow _ , c.Parent.Range("C:T")) c.Copy c.Offset(1, 0) Next End If End Sub ''' ------------------------------- Potential issue: in the copy/paste section, if 2 FC cells follow each other then copy/pasting the 1st one will overwrite the second FC row data therefore the second copy/paste will carry over on the 3rd row the data of the 1st FC row. Now, it is possible that this cannot happen in your situation, say for example that your sheet is organized in such a way that no 2 FC can follow each other. If this can happen however, you'll need to rewrite the Copy/Paste section to start copying/pasting the last row and going up. -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: I'm looking for help with a macro that will allow me to find every row in column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks, that works well, the only issue I need to address is the formatting.
I would like to only paste the values. Thanks again. "sebastienm" wrote: Hi, Try the following code. ''' ------------------------------- Sub test() Dim c As Range Dim result As Range Dim firstAddress As String ''' find all FC cells With ActiveSheet.Range("B:B") ''' <<<<< Range to search Set c = .Find("FC", LookIn:=xlValues, lookat:=xlWhole) ''' <<<<< what to search for If Not c Is Nothing Then firstAddress = c.Address Do If result Is Nothing Then Set result = c Else Set result = Application.Union(result, c) End If Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address < firstAddress End If End With ''' copy/paste If Not result Is Nothing Then ''' if some cells were found For Each c In result.Cells Set c = Application.Intersect(c.EntireRow _ , c.Parent.Range("C:T")) c.Copy c.Offset(1, 0) Next End If End Sub ''' ------------------------------- Potential issue: in the copy/paste section, if 2 FC cells follow each other then copy/pasting the 1st one will overwrite the second FC row data therefore the second copy/paste will carry over on the 3rd row the data of the 1st FC row. Now, it is possible that this cannot happen in your situation, say for example that your sheet is organized in such a way that no 2 FC can follow each other. If this can happen however, you'll need to rewrite the Copy/Paste section to start copying/pasting the last row and going up. -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: I'm looking for help with a macro that will allow me to find every row in column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
For values only, instead of
c.Copy c.Offset(1, 0) try something like: c.Copy c.Offset(1, 0).PasteSpecial xlPasteValues -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: Thanks, that works well, the only issue I need to address is the formatting. I would like to only paste the values. Thanks again. "sebastienm" wrote: Hi, Try the following code. ''' ------------------------------- Sub test() Dim c As Range Dim result As Range Dim firstAddress As String ''' find all FC cells With ActiveSheet.Range("B:B") ''' <<<<< Range to search Set c = .Find("FC", LookIn:=xlValues, lookat:=xlWhole) ''' <<<<< what to search for If Not c Is Nothing Then firstAddress = c.Address Do If result Is Nothing Then Set result = c Else Set result = Application.Union(result, c) End If Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address < firstAddress End If End With ''' copy/paste If Not result Is Nothing Then ''' if some cells were found For Each c In result.Cells Set c = Application.Intersect(c.EntireRow _ , c.Parent.Range("C:T")) c.Copy c.Offset(1, 0) Next End If End Sub ''' ------------------------------- Potential issue: in the copy/paste section, if 2 FC cells follow each other then copy/pasting the 1st one will overwrite the second FC row data therefore the second copy/paste will carry over on the 3rd row the data of the 1st FC row. Now, it is possible that this cannot happen in your situation, say for example that your sheet is organized in such a way that no 2 FC can follow each other. If this can happen however, you'll need to rewrite the Copy/Paste section to start copying/pasting the last row and going up. -- Regards, Sébastien <http://www.ondemandanalysis.com "Chris" wrote: I'm looking for help with a macro that will allow me to find every row in column B where the value is "FC" and will copy the range Bn:Tn to the row below. For example: if cell B4 = "FC" then copy C4:T4 and paste values to C5:T5 repeat for all rows where Column Bn = "FC" Any help would be appreciated. |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
find values in multiple cells and paste row values | Excel Discussion (Misc queries) | |||
Find Multiple Values, Copy Entire Row & Paste | Excel Programming | |||
Find/Copy/paste.. then Find/Paste - not working ... at all.... | Excel Programming | |||
How to Copy and Paste a variable range | Excel Programming | |||
code to FIND value, copy, paste values onto other sheet | Excel Programming |