Lavori abitualmente con fogli di lavoro che contengono dozzine (o centinaia)

di celle con nome e la maggior parte di questi nomi non sono necessari? La pulizia dei nomi può essere un compito enorme, ma eliminare quelli che non ti servono può rendere la tua cartella di lavoro più piccola ed efficiente. Il problema è: come ci si sbarazza di tanti nomi inutili tutto in una volta? Puoi certamente eliminarli uno alla volta, ma un processo del genere diventa rapidamente stancante. È anche possibile utilizzare Gestione nomi per eliminarli (premere Ctrl + F3), ma anche questo può richiedere molto tempo.

Una possibile soluzione è creare semplicemente una nuova cartella di lavoro e copiare le celle dalla vecchia cartella di lavoro a quella nuova. Evidenzia le celle nella vecchia cartella di lavoro, usa Ctrl + C per copiarle, quindi incollale nei fogli di lavoro nella nuova cartella di lavoro. Questo copierà quasi tutto dalla vecchia cartella di lavoro: formule, formattazione, ecc. Non porta la copia sulle impostazioni di stampa o sui nomi degli intervalli. L’unica attività che rimane quindi è ridefinire i pochi nomi che desideri nella nuova cartella di lavoro.

Se preferisci lavorare con la vecchia cartella di lavoro (quella con tutti i nomi), è meglio creare una macro che eliminerà il nome per te. Hai bisogno di una macro che ti permetta di eliminare tutti i nomi tranne quelli che vuoi mantenere. Quello che segue è un semplice approccio che esegue questa operazione:

Sub DeleteSomeNames()

Dim vKeep     Dim nm As Name     Dim x As Integer     Dim AWF As WorksheetFunction

'Add Names to keep here     vKeep = Array("Name1", "Name2")



Set AWF = Application.WorksheetFunction     For Each nm In ActiveWorkbook.Names         x = 0         On Error Resume Next         x = AWF.Match(nm.Name, vKeep, 0)

On Error GoTo 0         If x = 0 Then             nm.Delete         End If     Next     Set AWF = Nothing End Sub

Prima di utilizzare la macro, modificare la riga che crea l’array vKeep.

Inserisci semplicemente i nomi che desideri mantenere all’interno dell’array, ogni nome racchiuso tra virgolette e separato da virgole. (Nell’esempio mostrato qui, i nomi “Nome1” e “Nome2” verranno mantenuti.) La macro scorre tutti i nomi nella cartella di lavoro e utilizza la funzione Match per vedere se il nome è uno nell’array. Se non lo è, viene eliminato.

Se preferisci utilizzare una soluzione di terze parti per la gestione dei nomi nella cartella di lavoro, un’ottima scelta è il componente aggiuntivo Name Manager, scritto da Jan Karel Pieterse. Puoi trovare ulteriori informazioni sul componente aggiuntivo qui:

http://www.jkp-ads.com/officemarketplacenm-en.asp

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (11787) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.

Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: