VBA Impossible de supprimer tous les noms

Résolu/Fermé
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 13 janv. 2010 à 00:32
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 13 janv. 2010 à 13:36
Bonjour,

J'ai utilisé la macro suivante mais sans succès (erreur "Nom non valide") :

Sub Supprimer_Noms

Dim N as Name

For Each N In ActiveWorkbook.Names

N.Names

Next

End Sub

Auriez-vous une idée ?

Merci.

Netman
A voir également:

7 réponses

tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
13 janv. 2010 à 00:59
bonsoir,
pour supprimer les noms, remplacer N.Names par N.Delete dans le code
0
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 1
13 janv. 2010 à 09:18
Désolé c'était une erreur dans mon message. C'est bien N.Delete que j'ai mis, mais ça ne marche pas pour autant. J'obtiens toujours une erreur "Nom non valide".
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
13 janv. 2010 à 09:39
Bonjour,
peux-tu stp mettre ton classeur sur www.cjoint.com et copier le lien ici (tu peux supprimer les données, seuls les noms nous intéressent....)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 janv. 2010 à 09:43
Bonjour,

Sub supprimer_noms()
nbre = ThisWorkbook.Names.Count
If nbre > 0 Then
    For cptr = 1 To nbre
        ThisWorkbook.Names(1).Delete
    Next
End If
End Sub
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
13 janv. 2010 à 12:26
Bonjour,
Salut Michel,
Tu voulais certainement dire :
Sub supprimer_noms()
nbre = ThisWorkbook.Names.Count
If nbre > 0 Then
    For cptr = 1 To nbre
        ThisWorkbook.Names(cptr).Delete
    Next
End If
End Sub
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
13 janv. 2010 à 12:36
Salut michel, pikaju
non non, la boucle de michel est correcte pas la suivante
l'index du nom baisse de 1 à chaque suppression, on ne peut donc pas faire Names(cptr).delete.....supprimer le 1er jusqu'à ce qu'il n'y en ait plus est la meilleur solution (sinon un ptit For Each)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
13 janv. 2010 à 12:42
salut,
Exact. Merci de me réveiller...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 1
13 janv. 2010 à 12:36
Bonjour et merci pour vos contributions,

Je vais essayer de vous copier le fichier mais il faut que je l'aménage un peu (c'est un fichier de mon boulot).

En attendant les solutions que vous avez proposées m'amènent toujours à la même erreur.

Cordialement,

Netman
0
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
13 janv. 2010 à 12:41
re netman,
oui, il semble que tu aies un nom non valide ds ts fichier (ou un autre probleme lié au fichier) sinon les 2 codes (celui de michel et celui avec for each....N.delete) sont corrects....
autre truc sinon, mets en debut du code "On Error Resume Next", lance et vérifie si il reste des noms...
tiens nous au courant
0
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 1
13 janv. 2010 à 13:36
Merci. En effet ça a marché sur une bonne partie des noms. Certains sont restés et j'ai pu terminer à la main car il n'y en avait pas beaucoup.

Je pense avoir trouvé celui qui faisait planter la macro : je n'arrive même pas à le supprimer manuellement ! Et du coup je ne comprends pas comment il a pu être créé.

Merci à vous pour vos contributions.

Netman
0