Sub OterNomColEntiere()
Const Feuille = "Test"
Dim N As Name, addr, xrg As Range, xarea As Range, xcol As Range, uniquementCol As Boolean
DefinirNoms ' >>>>> à supprimer hors ntest
For Each N In ThisWorkbook.Names
uniquementCol = True ' a priori le nom de fait référence qu'à des colonnes (on va vérifier)
' si la rérérence du nom ne commence par "=" & Feuille alors uniquementCol est faux
' et on quitte la boucle (pas la bonne feuille)
If Not (N.RefersTo Like "=" & Feuille & "*") Then
uniquementCol = False
Else
Set xrg = Range(Mid(N.RefersTo, 2)) ' le range qui définit N
For Each xarea In xrg.Areas ' pour chaque plage de xrg
For Each xcol In xarea.Columns ' pour chaque colonne de la plage
' si le nombre de ligne d ela plage n'est pas le nombre de colonne d'une feuille excel
' alors uniquementCol est faux et on quitte la boucle des colonnes
If xcol.Rows.Count <> Rows.Count Then uniquementCol = False: Exit For
Next xcol
' si on n'a pas que des colonnes entières dans la plage alors on quitte la boucle des plages
If Not uniquementCol Then Exit For
Next xarea
End If
' si on a une plage qui ne contient des colonnes alors on efface le nom
If uniquementCol Then N.Delete
Next N
AfficherNoms "Les Noms restant après traitement" ' à >>>>> supprimer hors ntest
End Sub