Excel: Change cell in all spreadsheets

It's easy to change the same cell in multiple sheets - in fact it's a bit too easy and sometimes you may do this by accident - if more than one sheet is selected, then changing one cell will change the same cell in multiple sheets.

But what if you need to change the same cell in multiple workbooks instead?

Ron de Bruin provided the following macro (https://web.archive.org/web/20191230043120/http://www.rondebruin.nl/win/s3/win010.htm):

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

    'Fill in the path\folder where the files are

    MyPath = "C:\Users\Ron\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))

            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.Worksheets(1)

                    If .ProtectContents = False Then

                        .Range("A1").Value = "My New Header"

                    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

There's also a bunch of other macros to change bits and pieces in all spreadsheets in a folder: