ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA Code for Pasting Contents (https://www.excelbanter.com/excel-programming/442074-vba-code-pasting-contents.html)

Curt

VBA Code for Pasting Contents
 
I would like a VBA code that pastes the contents of a duplicate sheet into
it's corresponding orginal sheet.

For example, paste of "Sheet1 (2)" into "Sheet1".

Please do this for all sheets with duplicate names. You do not have to
worry about there ever being more than one duplicate. There will never be a
"Sheet1 (3)".

After this is done, I would like a separate code that deletes all duplicate
sheets.

For example, after pasting "Sheet1 (2)" into "Sheet1", delete "Sheet1 (2).


thanks,

Curt

Rick Rothstein

VBA Code for Pasting Contents
 
Is the data from "Sheet1 (2)" replacing the data on "Sheet1" in its
entirety? If so, why copy/paste? Why not simply delete "Sheet1" and rename
"Sheet1 (2)" to "Sheet1"? Something like this maybe...

Sub ProcessDuplicateSheets()
Dim WS As Worksheet, BaseName As String
Application.DisplayAlerts = False
For Each WS In Worksheets
If WS.Name Like "* (2)" Then
BaseName = Split(WS.Name, " (2)")(0)
Worksheets(BaseName).Delete
WS.Name = BaseName
End If
Next
Application.DisplayAlerts = True
End Sub

Note: The changes made by this macro cannot be undone, so make sure to test
it out on a copy of your workbook.

--
Rick (MVP - Excel)



"Curt" wrote in message
...
I would like a VBA code that pastes the contents of a duplicate sheet into
it's corresponding orginal sheet.

For example, paste of "Sheet1 (2)" into "Sheet1".

Please do this for all sheets with duplicate names. You do not have to
worry about there ever being more than one duplicate. There will never be
a
"Sheet1 (3)".

After this is done, I would like a separate code that deletes all
duplicate
sheets.

For example, after pasting "Sheet1 (2)" into "Sheet1", delete "Sheet1 (2).


thanks,

Curt



Javed

VBA Code for Pasting Contents
 
On Apr 27, 8:17*pm, "Rick Rothstein"
wrote:
Is the data from "Sheet1 (2)" replacing the data on "Sheet1" in its
entirety? If so, why copy/paste? Why not simply delete "Sheet1" and rename
"Sheet1 (2)" to "Sheet1"? Something like this maybe...

Sub ProcessDuplicateSheets()
* Dim WS As Worksheet, BaseName As String
* Application.DisplayAlerts = False
* For Each WS In Worksheets
* * If WS.Name Like "* (2)" Then
* * * BaseName = Split(WS.Name, " (2)")(0)
* * * Worksheets(BaseName).Delete
* * * WS.Name = BaseName
* * End If
* Next
* Application.DisplayAlerts = True
End Sub

Note: The changes made by this macro cannot be undone, so make sure to test
it out on a copy of your workbook.

--
Rick (MVP - Excel)

"Curt" wrote in message

...



I would like a VBA code that pastes the contents of a duplicate sheet into
it's corresponding orginal sheet.


For example, paste of "Sheet1 (2)" into "Sheet1".


Please do this for all sheets with duplicate names. *You do not have to
worry about there ever being more than one duplicate. *There will never be
a
"Sheet1 (3)".


After this is done, I would like a separate code that deletes all
duplicate
sheets.


For example, after pasting "Sheet1 (2)" into "Sheet1", delete "Sheet1 (2).


thanks,


Curt- Hide quoted text -


- Show quoted text -


The code is very nice.

One addition:
Normally macro actions can not be Undone.if wrongly run then do not
press "Save" button "close" the workbook and select "No" in the alert
dialog which appers after closing a workbook.

Curt

VBA Code for Pasting Contents
 
Rick, thanks for the response.

The problem that I am having is that I have formulas that refrence the
original sheet1, sheet2, sheet3.

If I change the name of sheet1 (2) to sheet1, I am left with a cell refrence.

"Rick Rothstein" wrote:

Is the data from "Sheet1 (2)" replacing the data on "Sheet1" in its
entirety? If so, why copy/paste? Why not simply delete "Sheet1" and rename
"Sheet1 (2)" to "Sheet1"? Something like this maybe...

Sub ProcessDuplicateSheets()
Dim WS As Worksheet, BaseName As String
Application.DisplayAlerts = False
For Each WS In Worksheets
If WS.Name Like "* (2)" Then
BaseName = Split(WS.Name, " (2)")(0)
Worksheets(BaseName).Delete
WS.Name = BaseName
End If
Next
Application.DisplayAlerts = True
End Sub

Note: The changes made by this macro cannot be undone, so make sure to test
it out on a copy of your workbook.

--
Rick (MVP - Excel)



"Curt" wrote in message
...
I would like a VBA code that pastes the contents of a duplicate sheet into
it's corresponding orginal sheet.

For example, paste of "Sheet1 (2)" into "Sheet1".

Please do this for all sheets with duplicate names. You do not have to
worry about there ever being more than one duplicate. There will never be
a
"Sheet1 (3)".

After this is done, I would like a separate code that deletes all
duplicate
sheets.

For example, after pasting "Sheet1 (2)" into "Sheet1", delete "Sheet1 (2).


thanks,

Curt


.



All times are GMT +1. The time now is 02:38 PM.

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