Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Delete a certain name in all workbooks in a specific folder

Posted on 2012-03-24
3
Medium Priority
?
278 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 42

Accepted Solution

by:
dlmille earned 2000 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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Access developers frequently have requirements to interact with Excel (import from or output to) in their applications.  You might be able to accomplish this with the TransferSpreadsheet and OutputTo methods, but in this series of articles I will di…
After seeing numerous questions for Dynamic Data Validation I notice that most have used Visual Basic to solve the problem. This suggestion is purely formula based and can be used in multiple rows.
This Micro Tutorial will demonstrate on a Mac how to change the sort order for chart legend values and decrpyt the intimidating chart menu.
This Micro Tutorial will demonstrate how to create pivot charts out of a data set. I also added a drop-down menu which allows to choose from different categories in the data set and the chart will automatically update.

636 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