copy sheet in active workbook to other workbooks under a folder

BKChedlia

New Member
Joined
Jun 15, 2016
Messages
41
Hi,
I have a folder with many workbooks, they have the same number of sheets, one of the sheets is named "Bank" and is protected

I want replace "Bank" sheet with a sheet in an active workbook named "BG", but the copy code is not working.

This is my code :

Code:
Sub Example()
    Dim MyPath As String, FilesInPath As String
    Dim MyFiles() As String, Fnum As Long
    Dim mybook As Workbook
    Dim CalcMode As Long
    Dim sh As Worksheet
    Dim ErrorYes As Boolean
    Dim wkb1 As Workbook
    Dim sht1 As Worksheet
    
    
    Set wkb1 = ThisWorkbook
    Set sht1 = wkb1.Sheets("BG")
   'Fill in the path\folder where the files are
    MyPath = "C:\Users\cben\Downloads\test"


    'Add a slash at the end if the user forget it
    If Right(MyPath, 1) <> "\" Then
        MyPath = MyPath & "\"
    End If


    'If there are no Excel files in the folder exit the sub
    FilesInPath = Dir(MyPath & "*.xl*")
    If FilesInPath = "" Then
        MsgBox "No files found"
        Exit Sub
    End If


    'Fill the array(myFiles)with the list of Excel files in the folder
    Fnum = 0
    Do While FilesInPath <> ""
        Fnum = Fnum + 1
        ReDim Preserve MyFiles(1 To Fnum)
        MyFiles(Fnum) = FilesInPath
        FilesInPath = Dir()
    Loop


    'Change ScreenUpdating, Calculation and EnableEvents
    With Application
        CalcMode = .Calculation
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
        .EnableEvents = False
    End With


    'Loop through all files in the array(myFiles)
    If Fnum > 0 Then
        For Fnum = LBound(MyFiles) To UBound(MyFiles)
            Set mybook = Nothing
            On Error Resume Next
           ' Set mybook = Workbooks.Open(MyPath & MyFiles(Fnum))
            Set mybook = Workbooks.Open(MyPath & MyFiles(Fnum), _
             Password:="Passw0rd")
            On Error GoTo 0


            If Not mybook Is Nothing Then




                'Change cell value(s) in one worksheet in mybook
                On Error Resume Next
                With mybook.Sheets("Bank")
               
               .Unprotect Password:="Passw0rd"
                   If .ProtectContents = False Then
                       sht1.Cells.Copy
mybook.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
                        .Protect Password:="Passw0rd"
                    Else
                        ErrorYes = True
                    End If
                End With




                If Err.Number > 0 Then
                    ErrorYes = True
                    Err.Clear
                    'Close mybook without saving
                    mybook.Close savechanges:=False
                Else
                    'Save and close mybook
                    mybook.Close savechanges:=True
                End If
                On Error GoTo 0
            Else
                'Not possible to open the workbook
                ErrorYes = True
            End If


        Next Fnum
    End If


    If ErrorYes = True Then
        MsgBox "There are problems in one or more files, possible problem:" _
             & vbNewLine & "protected workbook/sheet or a sheet/range that not exist"
    End If


    'Restore ScreenUpdating, Calculation and EnableEvents
    With Application
        .ScreenUpdating = True
        .EnableEvents = True
        .Calculation = CalcMode
    End With
End Sub

I think that this is the piece if code not working :

Code:
 sht1.Cells.Copymybook.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode = False
Can you please help me to make it work.
Thank you.
 
Last edited:

Excel Facts

Select all contiguous cells
Pressing Ctrl+* (asterisk) will select the "current region" - all contiguous cells in all directions.
Try removing mybook from the paste command
Code:
                With mybook.Sheets("Bank")
                    .Unprotect Password:="Passw0rd"
                       If .ProtectContents = False Then
                           Sht1.Cells.Copy
                            .Range("A1").PasteSpecial xlPasteValues
                            Application.CutCopyMode = False
                            .Protect Password:="Passw0rd"
                        Else
                            ErrorYes = True
                        End If
                End With
 
Upvote 0
Glad to help & thanks for the feedback
 
Upvote 0

Forum statistics

Threads
1,223,239
Messages
6,170,947
Members
452,368
Latest member
jayp2104

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top