VBA Impossible de supprimer tous les noms

Résolu
netman44 Messages postés 65 Statut Membre -  
netman44 Messages postés 65 Statut Membre -
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
Configuration: Sony Vaio VGN-FS215M et Samsung NC10
Microsoft Windows XP Edition Familiale Version 2002 Service Pack 3
Firefox version 3.5.7

7 réponses

  1. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    bonsoir,
    pour supprimer les noms, remplacer N.Names par N.Delete dans le code
    0
    1. netman44 Messages postés 65 Statut Membre 1
       
      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
  2. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      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
  4. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      salut,
      Exact. Merci de me réveiller...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. netman44 Messages postés 65 Statut Membre 1
     
    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
  7. tompols Messages postés 1273 Date d'inscription   Statut Contributeur Dernière intervention   460
     
    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
  8. netman44 Messages postés 65 Statut Membre 1
     
    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