Effacer les noms définis sur une feuille
A) pour effacer les noms se référant à une plage de la feuille active définis par NomFeuilleActive!NomPlage
sub efface1() Dim N As Name With ActiveSheet For Each N In .Names N.Delete Next End With end sub
B) pour effacer les noms se référant à une plage de la feuille active définis par par NomPlage et NomFeuilleActive!NomPlage
sub Efface2() Dim nom As String nom = ActiveSheet.Name nc = Len(nom) For Each N In ActiveWorkbook.Names v = N.RefersTo If Mid(v, 2, nc + 1) = nom & "!" Then N.Delete Next N end sub
C) si tu désires supprimer seulement les noms contenus dans une plage particulière de la feuille, par exemple Range("C1:C4") (le Range("c1:C4") doit être totalement comprise dans la plage définie par le "NOM.)
sub efface3()
With Worksheets("Feuil1")
For Each n In .Parent.Names
If TypeName(Evaluate(n.Name)) = "Range" Then
If Union(.Range("C1:C4"), Range(n.Name)).Address = Range(n.Name).Address Then
n.Delete
End If
End If
Next
End With
end subD) Et si les 2 plages range("C1:C4") et Nom doivent être identiques, tu ajoutes un test comme ceci :
sub efface4()
With Worksheets("Feuil1")
For Each n In .Parent.Names
If TypeName(Evaluate(n.Name)) = "Range" Then
If Union(.Range("C1:C4"), Range(n.Name)).Address = Range(n.Name).Address And _
Union(.Range("C1:C4"), Range(n.Name)).Address = .Range("c1:C4").Address Then
n.Delete
End If
End If
Next
End With
end subAuteurs : Denis Michon, Serge Garneau
Mots clefs associés à cette page : effacer, supprimer, nom, nommer, range
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
