Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Delete a certain name in all workbooks in a specific folder

Posted on 2012-03-24
3
Medium Priority
?
279 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 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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Freeze panes is an option within all variants of Excel to enable parts of a sheet to remain stationary when the cursor is in another part of the sheet. This is a very useful feature which is overlooked or under used.
This article describes a serious pitfall that can happen when deleting shapes using VBA.
The viewer will learn how to create a normally distributed random variable in Excel, use a normal distribution to simulate the return on an investment over a period of years, Create a Monte Carlo simulation using a normal random variable, and calcul…
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

580 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