Comment supprimer une plage nommée à l’aide de VBA (avec exemple)
Vous pouvez utiliser la syntaxe suivante dans VBA pour supprimer des plages nommées d’un classeur Excel :
Sub DeleteNamedRanges()
Dim NamedRange As Name
For Each NamedRange In ActiveWorkbook.Names
If NamedRange.Visible Then NamedRange.Delete
Next NamedRange
End Sub
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : supprimer des plages nommées dans un classeur Excel à l’aide de VBA
Supposons que nous ayons un classeur Excel contenant les trois plages nommées suivantes :
- Une plage nommée appelée sheet1_name dans Sheet1
- Une plage nommée appelée sheet2_name dans Sheet2
- Une plage nommée appelée sheet3_name dans Sheet3
Pour voir chacune de ces plages nommées, cliquez simplement sur la flèche déroulante dans la zone Nom située dans le coin supérieur gauche de la feuille de calcul :
Supposons que nous souhaitions supprimer chacune de ces plages nommées.
Nous pouvons créer la macro suivante pour ce faire :
Sub DeleteNamedRanges()
Dim NamedRange As Name
For Each NamedRange In ActiveWorkbook.Names
If NamedRange.Visible Then NamedRange.Delete
Next NamedRange
End Sub
Une fois cette macro exécutée, toutes les plages nommées de l’ensemble du classeur seront supprimées.
Nous pouvons vérifier qu’ils ont été supprimés en cliquant à nouveau sur la case Nom dans le coin supérieur gauche de l’une des feuilles :
Nous pouvons voir que la zone Nom ne contient plus les noms des plages nommées.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :
VBA : Comment coller des valeurs uniquement sans formatage
VBA : Comment copier des lignes visibles sur une autre feuille
VBA : copier des lignes dans une autre feuille en fonction de critères