Solved

Delete a certain name in all workbooks in a specific folder

Posted on 2012-03-24
3
274 Views
Last Modified: 2012-03-25
Dear Experts:

I got a - workbook level scope -  name called 'MyNamedRange' in more than 200 xlsx-workbooks that all reside in the same folder C:\ExcelFolder\

I would like to run a macro that deletes this 'workbook level scope' name in each and every workbook in one go.

Help is much appreciated. Thank you very much in advance.

Regards,  Andreas
0
Comment
Question by:AndreasHermle
  • 2
3 Comments
 
LVL 42

Accepted Solution

by:
dlmille earned 500 total points
ID: 37761570
As requested, the starting point is on the initial sheet, but you are prompted for the directory in case you'd like to either confirm/change it, then all files are opened, the workbook scoped name is deleted if it exists, then the file is closed and saved in the loop.

Here's the code:
Option Explicit
Sub deleteNamedRangeFilesInFolder()
Dim dialogFile As FileDialog
Dim strpath As String
Dim fName As String
Dim wkb As Workbook
Dim wks As Worksheet
Dim rgName As String
Dim myName As Name
Dim wkbProcess As Workbook
Dim wksProcess As Worksheet
Dim fPathFname As String

    Set wkb = ThisWorkbook
    Set wks = wkb.Sheets("Control Panel")
    
    strpath = IIf(Right([folderPath], 1) = "\", [folderPath], [folderPath] & "\")
    rgName = [rngName]
    
    ' Open the file dialog
    Set dialogFile = Application.FileDialog(msoFileDialogFolderPicker)
    With dialogFile
        .AllowMultiSelect = False
        .InitialView = msoFileDialogViewDetails
        .InitialFileName = strpath
        .Title = "Select Folder for Processing"
        .Show
    End With
    If dialogFile.SelectedItems.Count > 0 Then
        strpath = dialogFile.SelectedItems(1)
        
        fName = Dir(strpath & "\*.xlsx")
        If fName <> "" Then
        
            Application.EnableEvents = False
            Application.DisplayAlerts = False
            
            Do
                fPathFname = strpath & "\" & fName
                Application.StatusBar = "Processing File: " & fPathFname
                Set wkbProcess = Workbooks.Open(Filename:=fPathFname)
                
                On Error Resume Next
                wkbProcess.Names(rgName).Delete
                On Error GoTo 0
                
                wkbProcess.Close savechanges:=True
                
                fName = Dir()
                
            Loop Until fName = vbNullString
        End If
            
    End If
    
    MsgBox "Process Complete!"
        
gracefulExit:
    'cleanup
    Set dialogFile = Nothing
    Application.StatusBar = False
    Application.EnableEvents = True
    Application.DisplayAlerts = True
End Sub

Open in new window


See attached.

Dave
delRangeNameFromFiles-r1.xlsm
0
 

Author Comment

by:AndreasHermle
ID: 37763002
Wow, I am really impressed Dave! Great job, very sophisticated coding. I have tested it several times with different folders and files. It works just fine.

Thank you very much for your time taken, your swift support and your more than professional work.

This forum deserves its name. There is no doubt about it.

Regards, Andreas
0
 

Author Closing Comment

by:AndreasHermle
ID: 37763011
Again, this forum is more than one can dream of.

Great job, Dave!

Regards, Andreas
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A little background as to how I came to I design this code: Around 5 years ago I designed an add-in that formatted Excel files to a corporate standard, applying different cell colours and font type depending on whether the cells contained inputs,…
Approximate matching with VLOOKUP and MATCH seems to me to be a greatly under-used technique, and one which is vital for getting good performance out of large lookups. Until recently I would always have advised using an exact match for simplicity an…
This Micro Tutorial will demonstrate the scrolling table in Microsoft Excel using the INDEX function.
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question