IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

problème supression des noms (names) [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut problème supression des noms (names)
    bonjour,
    dans certaines (anciennes) feuilles, j'aimerai supprimer les noms définis.
    j'utilise le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub supprime_noms()
    On Error Resume Next
    For Each Nom In ActiveWorkbook.Names
    Nom.Delete
    Next
    On Error GoTo 0
    End Sub
    souci (c'est pour cela que j'ai mis un on error)
    certains noms sont: V4 ou DJ12
    et provoquent une erreur.

    a la fin de l'execution du code, ces noms restent dans le classeur
    que faire?

    remarque: en VBA il se produit une erreur avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.Names("dj2").Delete
    alors que cette ligne est obtenue en enregistrant une macro.
    je pense que le problème (et donc la solution) est la même:
    laquelle?
    merci
    pirot

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    V4 et DJ12 sont des adresses de cellules.
    Tu ne peux pas nommer ainsi des plages parce qu'il y aura un conflit

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    bonjour,
    je sais bien que "cela n'est pas (plus) possible"
    MAIS malheureusement je trouve ce type de noms sur certaines feuilles
    que je récupère et que je dois traiter! et il y en a beaucoup!
    je suppose qu'une certaine aoncienne version d'excel permettait de créer de telles références.
    je me vois donc contraint de faire les suppressions "à la main" ?
    tant pis
    comme cela fonctionne "à la main", je pouvais espérer qu'il y avait un
    "additif" à placer devant le nom invalide pour forcer.
    (un peu comme mettre le signe tilde devant * ou ? pour les recherches
    avec vba si on ne veutpas utiliser * générique)
    @+
    pirot

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Trouvé sur le net à essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub SupprNoms()
     
    ExecuteExcel4Macro "SUM(DELETE.NAME(NAMES()))"
    End Sub
    Edit:
    Et aussi sur la FAQ

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    bonjour,
    merci pour la piste,
    mais cela ne détruit que les noms "normaux"
    amicalement
    pirot

    ps:
    j'ai aussi essayé
    application.ExecuteExcel4Macro "DELETE.NAME(NAMES(""V4""))"
    V4 est un des noms "interdits" dans les versions actuelles d'excel
    sans erreur, mais sans succès à l'effacement.

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Peux tu mettre en PJ, l'une des feuilles avec ces noms récalcitrants?

  7. #7
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Points : 14 363
    Points
    14 363
    Par défaut
    Bonjour,

    Une solution serait de passer par une version d'Excel postérieure à Excel 2003. Les noms créés par XL2003 (par exemple "IW1") sont renommés "_IW1" et peuvent donc être éventuellement supprimés. Encore faut-il disposer d'une telle version.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut
    bonjour,
    je joints donc un classeur excel avec l'ensemble des noms de départ
    après l'exécution du code,
    il restera 4 noms.
    @+
    pirot
    Fichiers attachés Fichiers attachés

  9. #9
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    C'est une question de contexte...

    Va dans ton classeur dans Outils, options, général et coche styleRéférence L1C1.

    lance ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub supprime_noms()
    'On Error Resume Next
    For Each Nom In ActiveWorkbook.Names
    Nom.Delete
    Next
    'On Error GoTo 0
    End Sub
    Tu ne devrais plus rien avoir en noms, il n'y a plus de conflits avec des noms de cellules natifs..

    Cordialement,

    Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points

    Didier

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 10
    Points
    10
    Par défaut [resolu]
    bonjour,
    merci à ormonth,
    cela fonctionne pafaitement
    une épine en moins dans le pied!
    @+
    pirot
    (débutant sur le forum, je ne vois pas où est le symbole pour dire: résolu)

    PS:le code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub supprime_noms()
    Application.ReferenceStyle = xlR1C1
    For Each Nom In ActiveWorkbook.Names
        Nom.Delete
    Next
     Application.ReferenceStyle = xlA1
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DisplayTag] Problème internationalisation des noms des colonnes
    Par belha00 dans le forum Taglibs
    Réponses: 2
    Dernier message: 10/01/2012, 18h33
  2. [WB10] Problème avec des noms de tables
    Par chuky dans le forum WebDev
    Réponses: 6
    Dernier message: 02/11/2007, 10h45
  3. problème encodage des noms de fichiers
    Par kiopa'a dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2007, 13h49
  4. Réponses: 2
    Dernier message: 19/12/2006, 19h37
  5. [VB Excel] Problème avec le nom automatique des TCD
    Par RedBurn dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/12/2005, 14h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo