ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Excel macro script to copy only formulas and not values from one sheet to another (https://www.excelbanter.com/excel-programming/306841-excel-macro-script-copy-only-formulas-not-values-one-sheet-another.html)

Kate[_4_]

Excel macro script to copy only formulas and not values from one sheet to another
 
I need a macro that will copy formulas in various cells from one
worksheet to another onto the same cell on the new worksheet. I want
to leave cells with values alone. Example (with formulas showing):
Sheet1:
A B C D
3 4 5 =sum(A1:C1)

Sheet2:
A B C D
7 6 5 18

Run Macro:
Sheet2 now reads:
A B C D
7 6 5 =sum(A1:C1)

I know how to find the formulas in Sheet1, but I can't figure out how
to copy them into the correct cells on Sheet2 leaving all the others
as is.

Chip Pearson

Excel macro script to copy only formulas and not values from one sheet to another
 
Kate,

Try the following code:

Dim Rng As Range
For Each Rng In
Worksheets("Sheet1").SpecialCells(xlCellTypeFormul as)
Worksheets("Sheet2").Range(Rng.Address).Formula = Rng.Formula
Next Rng



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com




"Kate" wrote in message
om...
I need a macro that will copy formulas in various cells from

one
worksheet to another onto the same cell on the new worksheet.

I want
to leave cells with values alone. Example (with formulas

showing):
Sheet1:
A B C D
3 4 5 =sum(A1:C1)

Sheet2:
A B C D
7 6 5 18

Run Macro:
Sheet2 now reads:
A B C D
7 6 5 =sum(A1:C1)

I know how to find the formulas in Sheet1, but I can't figure

out how
to copy them into the correct cells on Sheet2 leaving all the

others
as is.




William[_2_]

Excel macro script to copy only formulas and not values from one sheet to another
 
Hi Kate

Sub test()
Application.ScreenUpdating = False
Dim ws As Worksheet, r As Range, c As Range
Set ws = ActiveSheet
With ws
Set r = .Cells.SpecialCells(xlCellTypeFormulas, 23)
End With
For Each c In r
c.Copy Sheets("Sheet2").Range(c.Address)
Next c
Application.ScreenUpdating = True
End Sub

--
XL2002
Regards

William



"Kate" wrote in message
om...
| I need a macro that will copy formulas in various cells from one
| worksheet to another onto the same cell on the new worksheet. I want
| to leave cells with values alone. Example (with formulas showing):
| Sheet1:
| A B C D
| 3 4 5 =sum(A1:C1)
|
| Sheet2:
| A B C D
| 7 6 5 18
|
| Run Macro:
| Sheet2 now reads:
| A B C D
| 7 6 5 =sum(A1:C1)
|
| I know how to find the formulas in Sheet1, but I can't figure out how
| to copy them into the correct cells on Sheet2 leaving all the others
| as is.



Katherina Holzhauser

Excel macro script to copy only formulas and not values from one sheet to another
 
Great - this one worked. One enhancement request: How do I prompt the
user to fill in the name of the sheet they want to copy from and the
name of the sheet they want to copy to?

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Tom Ogilvy

Excel macro script to copy only formulas and not values from one sheet to another
 
Use an inputbox for each.

Sub test()
Application.ScreenUpdating = False
Dim srcSh As Worksheet, r As Range, c As Range
Dim destSh as Worksheet, src as string, dest as string
src = InputBox("Enter Source Sheet Name")
dest = Inputbox("Enter Destination Sheet Name")
if src = "" or dest = "" then
msgbox "missing sheet name"
exit sub
end if
On error resume Next
set srcSh = Worksheets(src)
set destSh = Worksheets(dest)
On Error goto 0
if srcSh is nothing or destSh is nothing then
msgbox "Non existent sheet"
exit sub
End if
With srcSh
Set r = .Cells.SpecialCells(xlCellTypeFormulas, 23)
End With
For Each c In r
c.Copy destSh.Range(c.Address)
Next c
Application.ScreenUpdating = True
End Sub

Untested, so there may be typos.

--
Regards,
Tom Ogilvy



--
Regards,
Tom Ogilvy

"Katherina Holzhauser" wrote in message
...
Great - this one worked. One enhancement request: How do I prompt the
user to fill in the name of the sheet they want to copy from and the
name of the sheet they want to copy to?

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!




William[_2_]

Excel macro script to copy only formulas and not values from one sheet to another
 
Hi Kate

Sub test()
Dim Message As String, Title As String, MyValue As String
Dim Message1 As String, Title1 As String, MyValue1 As String
Dim ws As Worksheet, r As Range, c As Range
On Error GoTo Err
Message = "Please enter the sheet name you want the cells copied from"
Title = "Copy From"
MyValue = InputBox(Message, Title)
With Sheets(MyValue)
Set r = .Cells.SpecialCells(xlCellTypeFormulas, 23)
End With
Message1 = "Please enter the sheet name you want the cells copied to"
Title1 = "Copy To"
MyValue1 = InputBox(Message1, Title1)
Application.ScreenUpdating = False
For Each c In r
c.Copy Sheets(MyValue1).Range(c.Address)
Next c
Application.ScreenUpdating = True
Exit Sub
Err:
MsgBox "Either a sheet name was not entered or the " & _
"sheet does not exist in this workbook"
End Sub

--
XL2002
Regards

William



"Katherina Holzhauser" wrote in message
...
| Great - this one worked. One enhancement request: How do I prompt the
| user to fill in the name of the sheet they want to copy from and the
| name of the sheet they want to copy to?
|
| *** Sent via Developersdex
http://www.developersdex.com ***
| Don't just participate in USENET...get rewarded for it!




All times are GMT +1. The time now is 01:46 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com