VBA Macro to open/save/close workbooks in folder and subfolders Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Data science time! April 2019 and salary with experience The Ask Question Wizard is Live!Loop Through All Subfolders Using VBAListing files from subdirectories in vb into cells in excel with hyperlinksExcel .XLSM file… Auto save and close?Excel Vba not opening correct workbooks?Open/Run Macro/Save & CloseNeed to modify my VBA code to include subfolders as wellHow to import the entire row(s) containing current (today's) date from a excel file into another excel file automatically without opening with VBAVBA How to replace excel files in folder as Macro Enabled workbooksExcel VBA looping through all sheets in all workbooks within a folderExcel crashes after SaveAsDelete rows sub very slow to process

What does this say in Elvish?

Can two person see the same photon?

Co-worker has annoying ringtone

Tannaka duality for semisimple groups

Why is std::move not [[nodiscard]] in C++20?

Why are vacuum tubes still used in amateur radios?

AppleTVs create a chatty alternate WiFi network

Did Mueller's report provide an evidentiary basis for the claim of Russian govt election interference via social media?

Resize vertical bars (absolute-value symbols)

What is the difference between a "ranged attack" and a "ranged weapon attack"?

Google .dev domain strangely redirects to https

Why is it faster to reheat something than it is to cook it?

The test team as an enemy of development? And how can this be avoided?

Simple Http Server

Universal covering space of the real projective line?

A term for a woman complaining about things/begging in a cute/childish way

How can I prevent/balance waiting and turtling as a response to cooldown mechanics

Special flights

Why do early math courses focus on the cross sections of a cone and not on other 3D objects?

What is the difference between CTSS and ITS?

Can you force honesty by using the Speak with Dead and Zone of Truth spells together?

Does any scripture mention that forms of God or Goddess are symbolic?

Why does electrolysis of aqueous concentrated sodium bromide produce bromine at the anode?

License to disallow distribution in closed source software, but allow exceptions made by owner?



VBA Macro to open/save/close workbooks in folder and subfolders



Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern)
Data science time! April 2019 and salary with experience
The Ask Question Wizard is Live!Loop Through All Subfolders Using VBAListing files from subdirectories in vb into cells in excel with hyperlinksExcel .XLSM file… Auto save and close?Excel Vba not opening correct workbooks?Open/Run Macro/Save & CloseNeed to modify my VBA code to include subfolders as wellHow to import the entire row(s) containing current (today's) date from a excel file into another excel file automatically without opening with VBAVBA How to replace excel files in folder as Macro Enabled workbooksExcel VBA looping through all sheets in all workbooks within a folderExcel crashes after SaveAsDelete rows sub very slow to process



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















I have the following code that will open/save/close any/all workbooks in a folder. It works great, however, I also need it to include sub folders. The code needs to work without restrictions on the number of folders, sub folders and files, if possible.



I'm working with Excel 2010 and I'm new to VBA - would really appreciate any help!



Sub File_Loop_Example()
'Excel VBA code to loop through files in a folder with Excel VBA

Dim MyFolder As String, MyFile As String

'Opens a file dialog box for user to select a folder

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With

'stops screen updating, calculations, events, and statsu bar updates to help code run faster
'you'll be opening and closing many files so this will prevent your screen from displaying that

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'This section will loop through and open each file in the folder you selected
'and then close that file before opening the next file

MyFile = Dir(MyFolder & "", vbReadOnly)

Do While MyFile <> ""
DoEvents
On Error GoTo 0
Workbooks.Open Filename:=MyFolder & "" & MyFile, UpdateLinks:=False
ActiveWorkbook.Save
Workbooks(MyFile).Close SaveChanges:=True
MyFile = Dir
Loop

'turns settings back on that you turned off before looping folders

Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.Calculation = xlCalculationManual

MsgBox "Done!"

End Sub










share|improve this question



















  • 1





    You can use: stackoverflow.com/questions/22645347/…

    – Error 1004
    Mar 22 at 12:09











  • @Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

    – Zac
    Mar 22 at 13:25











  • How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

    – Rubi
    Mar 22 at 14:27


















0















I have the following code that will open/save/close any/all workbooks in a folder. It works great, however, I also need it to include sub folders. The code needs to work without restrictions on the number of folders, sub folders and files, if possible.



I'm working with Excel 2010 and I'm new to VBA - would really appreciate any help!



Sub File_Loop_Example()
'Excel VBA code to loop through files in a folder with Excel VBA

Dim MyFolder As String, MyFile As String

'Opens a file dialog box for user to select a folder

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With

'stops screen updating, calculations, events, and statsu bar updates to help code run faster
'you'll be opening and closing many files so this will prevent your screen from displaying that

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'This section will loop through and open each file in the folder you selected
'and then close that file before opening the next file

MyFile = Dir(MyFolder & "", vbReadOnly)

Do While MyFile <> ""
DoEvents
On Error GoTo 0
Workbooks.Open Filename:=MyFolder & "" & MyFile, UpdateLinks:=False
ActiveWorkbook.Save
Workbooks(MyFile).Close SaveChanges:=True
MyFile = Dir
Loop

'turns settings back on that you turned off before looping folders

Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.Calculation = xlCalculationManual

MsgBox "Done!"

End Sub










share|improve this question



















  • 1





    You can use: stackoverflow.com/questions/22645347/…

    – Error 1004
    Mar 22 at 12:09











  • @Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

    – Zac
    Mar 22 at 13:25











  • How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

    – Rubi
    Mar 22 at 14:27














0












0








0








I have the following code that will open/save/close any/all workbooks in a folder. It works great, however, I also need it to include sub folders. The code needs to work without restrictions on the number of folders, sub folders and files, if possible.



I'm working with Excel 2010 and I'm new to VBA - would really appreciate any help!



Sub File_Loop_Example()
'Excel VBA code to loop through files in a folder with Excel VBA

Dim MyFolder As String, MyFile As String

'Opens a file dialog box for user to select a folder

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With

'stops screen updating, calculations, events, and statsu bar updates to help code run faster
'you'll be opening and closing many files so this will prevent your screen from displaying that

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'This section will loop through and open each file in the folder you selected
'and then close that file before opening the next file

MyFile = Dir(MyFolder & "", vbReadOnly)

Do While MyFile <> ""
DoEvents
On Error GoTo 0
Workbooks.Open Filename:=MyFolder & "" & MyFile, UpdateLinks:=False
ActiveWorkbook.Save
Workbooks(MyFile).Close SaveChanges:=True
MyFile = Dir
Loop

'turns settings back on that you turned off before looping folders

Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.Calculation = xlCalculationManual

MsgBox "Done!"

End Sub










share|improve this question
















I have the following code that will open/save/close any/all workbooks in a folder. It works great, however, I also need it to include sub folders. The code needs to work without restrictions on the number of folders, sub folders and files, if possible.



I'm working with Excel 2010 and I'm new to VBA - would really appreciate any help!



Sub File_Loop_Example()
'Excel VBA code to loop through files in a folder with Excel VBA

Dim MyFolder As String, MyFile As String

'Opens a file dialog box for user to select a folder

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With

'stops screen updating, calculations, events, and statsu bar updates to help code run faster
'you'll be opening and closing many files so this will prevent your screen from displaying that

Application.ScreenUpdating = False
Application.DisplayStatusBar = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

'This section will loop through and open each file in the folder you selected
'and then close that file before opening the next file

MyFile = Dir(MyFolder & "", vbReadOnly)

Do While MyFile <> ""
DoEvents
On Error GoTo 0
Workbooks.Open Filename:=MyFolder & "" & MyFile, UpdateLinks:=False
ActiveWorkbook.Save
Workbooks(MyFile).Close SaveChanges:=True
MyFile = Dir
Loop

'turns settings back on that you turned off before looping folders

Application.ScreenUpdating = True
Application.DisplayStatusBar = True
Application.EnableEvents = True
Application.Calculation = xlCalculationManual

MsgBox "Done!"

End Sub







excel vba excel-2010






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Mar 22 at 13:18









Pᴇʜ

25.3k63052




25.3k63052










asked Mar 22 at 11:55









RubiRubi

1




1







  • 1





    You can use: stackoverflow.com/questions/22645347/…

    – Error 1004
    Mar 22 at 12:09











  • @Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

    – Zac
    Mar 22 at 13:25











  • How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

    – Rubi
    Mar 22 at 14:27













  • 1





    You can use: stackoverflow.com/questions/22645347/…

    – Error 1004
    Mar 22 at 12:09











  • @Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

    – Zac
    Mar 22 at 13:25











  • How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

    – Rubi
    Mar 22 at 14:27








1




1





You can use: stackoverflow.com/questions/22645347/…

– Error 1004
Mar 22 at 12:09





You can use: stackoverflow.com/questions/22645347/…

– Error 1004
Mar 22 at 12:09













@Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

– Zac
Mar 22 at 13:25





@Error1004 reply should give you your answer but please be aware of recursive UDF's. search for something like: recursive functions and its pitfalls

– Zac
Mar 22 at 13:25













How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

– Rubi
Mar 22 at 14:27






How would I incorporate the code in the @Error 1004 reply above? Or is it a case of incorporating my existing code into that? Apologies if this sounds dumb - I'm VERY new to this! Also, i would like to keep the folder picker that I have - would this be possible?

– Rubi
Mar 22 at 14:27













1 Answer
1






active

oldest

votes


















0














For anyone interested, I found an alternative which I managed to adapt and does exactly what I want:



Sub Loop_Example()

Dim MyFolder As String
Dim file As Variant, wb As Excel.Workbook

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
MyFolder = .SelectedItems(1)
Err.Clear
End With

Application.ScreenUpdating = False

For Each file In Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & startFolder & "*.xl*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
Set wb = Workbooks.Open(file)
ActiveWorkbook.Save
wb.Close SaveChanges:=True
Set wb = Nothing
Next

Application.ScreenUpdating = True

MsgBox "Done!"

End Sub





share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55299082%2fvba-macro-to-open-save-close-workbooks-in-folder-and-subfolders%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    For anyone interested, I found an alternative which I managed to adapt and does exactly what I want:



    Sub Loop_Example()

    Dim MyFolder As String
    Dim file As Variant, wb As Excel.Workbook

    With Application.FileDialog(msoFileDialogFolderPicker)
    .AllowMultiSelect = False
    .Show
    MyFolder = .SelectedItems(1)
    Err.Clear
    End With

    Application.ScreenUpdating = False

    For Each file In Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & startFolder & "*.xl*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
    Set wb = Workbooks.Open(file)
    ActiveWorkbook.Save
    wb.Close SaveChanges:=True
    Set wb = Nothing
    Next

    Application.ScreenUpdating = True

    MsgBox "Done!"

    End Sub





    share|improve this answer



























      0














      For anyone interested, I found an alternative which I managed to adapt and does exactly what I want:



      Sub Loop_Example()

      Dim MyFolder As String
      Dim file As Variant, wb As Excel.Workbook

      With Application.FileDialog(msoFileDialogFolderPicker)
      .AllowMultiSelect = False
      .Show
      MyFolder = .SelectedItems(1)
      Err.Clear
      End With

      Application.ScreenUpdating = False

      For Each file In Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & startFolder & "*.xl*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
      Set wb = Workbooks.Open(file)
      ActiveWorkbook.Save
      wb.Close SaveChanges:=True
      Set wb = Nothing
      Next

      Application.ScreenUpdating = True

      MsgBox "Done!"

      End Sub





      share|improve this answer

























        0












        0








        0







        For anyone interested, I found an alternative which I managed to adapt and does exactly what I want:



        Sub Loop_Example()

        Dim MyFolder As String
        Dim file As Variant, wb As Excel.Workbook

        With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        MyFolder = .SelectedItems(1)
        Err.Clear
        End With

        Application.ScreenUpdating = False

        For Each file In Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & startFolder & "*.xl*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
        Set wb = Workbooks.Open(file)
        ActiveWorkbook.Save
        wb.Close SaveChanges:=True
        Set wb = Nothing
        Next

        Application.ScreenUpdating = True

        MsgBox "Done!"

        End Sub





        share|improve this answer













        For anyone interested, I found an alternative which I managed to adapt and does exactly what I want:



        Sub Loop_Example()

        Dim MyFolder As String
        Dim file As Variant, wb As Excel.Workbook

        With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        MyFolder = .SelectedItems(1)
        Err.Clear
        End With

        Application.ScreenUpdating = False

        For Each file In Filter(Split(CreateObject("WScript.Shell").Exec("CMD /C DIR """ & startFolder & "*.xl*"" /S /B /A:-D").StdOut.ReadAll, vbCrLf), ".")
        Set wb = Workbooks.Open(file)
        ActiveWorkbook.Save
        wb.Close SaveChanges:=True
        Set wb = Nothing
        Next

        Application.ScreenUpdating = True

        MsgBox "Done!"

        End Sub






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 22 at 16:26









        RubiRubi

        1




        1





























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55299082%2fvba-macro-to-open-save-close-workbooks-in-folder-and-subfolders%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

            용인 삼성생명 블루밍스 목차 통계 역대 감독 선수단 응원단 경기장 같이 보기 외부 링크 둘러보기 메뉴samsungblueminx.comeh선수 명단용인 삼성생명 블루밍스용인 삼성생명 블루밍스ehsamsungblueminx.comeheheheh

            155 수학 과학 기타 둘러보기 메뉴eh추가해eh문서를 완성해