J'ai un modèle Excel qui est rempli par des feuilles ajoutées que je reçois de mes collègues. Chaque feuille que je reçois contient environ 12 plages nommées qui ont toutes le même nom. Chaque nom commence par "flags".comment supprimer les plages nommées contenant "flags"
J'ai trouvé une autre question sur stackoverflow qui donne une solution pour supprimer le nom plages avec des noms qui ne sont pas égaux aux noms donnés: loop through names and delete those not matching specified pattern
J'utilise cette solution pour créer mon propre code. Les noms que je veux supprimer (parce qu'ils rendent mon fichier terriblement lent) commencent tous par "flags". Je donc utilisé le
left(myname.namelocal, 5)
fonction
pour trouver chaque nom dans mon classeur qui commence par « drapeaux » et l'ont supprimé.
Toutefois, ce code ne fonctionne pas. Les noms ne sont pas supprimés lorsque j'exécute le code.
Et je ne comprends pas pourquoi cela ne fonctionne pas. J'ai essayé un code similaire sur un petit fichier pour tester le code. Cela a bien fonctionné.
La seule différence est que le fichier de test n'était pas protégé par mot de passe. C'est ce que j'ai ajouté au code pour m'assurer que le code peut supprimer les noms.
Sub deletenames()
'verwijderd alle naam-bereiken waarvan de naam begint met flags uit het verwerkingsbestand.
Dim ws As Worksheet
Dim myName As Name
For Each ws In ThisWorkbook.Worksheets
ws.Unprotect ("TM")
Next ws
For Each myName In ThisWorkbook.Names
If Left(myName.NameLocal, 5) = "flags" Then myName.Delete
Next
End Sub
Que puis-je faire pour que ce code fonctionne?
quand je change mon code et faire ik montrer un msgbox contenant le name.local pour chaque dans le classeur, je reçois des noms comme « Feuille de travail nom '! flags10_filterdatabase. Par conséquent, je pense que je devrais changer le code pour trouver le travail "flags" dans le nom de la plage, au lieu de regarder le début. Puis-je le faire en utilisant "like"? – DutchArjo
ce code a fait l'affaire pour moi: 'If myName.NameLocal Like" * "&" flags "&" * "Then myName.Delete' – DutchArjo