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 :

Supprimer tous les noms d'un classeur erreur 1004


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Par défaut Supprimer tous les noms d'un classeur erreur 1004
    Bonsoir,
    Je suis un novice en VBA et je me suis autoformé et j'aurai besoin d'aide sur un programme que j'ai fait et qui a bien fonctionné et puis une erreur est apparue.

    J'ai créé un classeur qui permet de faire des factures. (34 feuilles dans le classeur)
    Ce classeur permet de faire ces factures soit en français ou en allemand.
    Pour passer d'une langue à l'autre, dans un premier temps j'efface en VBA tous les noms contenus dans le classeur et je renomme toutes les plages dans la langue cible.
    Mes noms et zones concernés se trouvent dans mon classeur sur une feuille où sont définis le nom et la plage ( feuille et cellules).
    Mon appli fonctionnait jusqu'à l'instant, mais maintenant quand je lance la modification de la langue, j'ai un message qui m'indique une erreur de nom. Erreur d'éxécution'1004'
    J'ai vérifié tous les noms, j'ai rien trouvé.
    J'ai supprimé tous les noms manuellement avec le Gestionnaire des noms, toujours la même erreur.
    J'ai supprimé une feuille après l'autre en lançant la macro après chaque suppression de feuille, mais toujours la même erreur jusqu'à la dernière feuille.
    j'ai modifié ma macro, pour qu'elle me demande confirmation avant chaque suppression de nom de plage, là j'arrive sur un nom _xlfn.SUMIFS-=#NAME?? qui est semble -t-il le nom qui me crée l'erreur.
    Mais je n'arrive pas à trouver ce nom sur mes feuilles, ni dans mes formules, ni dans l'ensemble VBA project.
    Est-ce que quelqu'un aurait une idée où pourrait se trouver la cause de mon erreur et comment y remédier. ?
    D'avance merci

  2. #2
    Membre éclairé
    Homme Profil pro
    instituteur
    Inscrit en
    Juillet 2018
    Messages
    615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : instituteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2018
    Messages : 615

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce classeur permet de faire ces factures soit en français ou en allemand.
    Pour passer d'une langue à l'autre, dans un premier temps j'efface en VBA tous les noms contenus dans le classeur et je renomme toutes les plages dans la langue cible.
    Mes noms et zones concernés se trouvent dans mon classeur sur une feuille où sont définis le nom et la plage ( feuille et cellules).
    Pourquoi te compliquer la vie
    Sans VBA, tu peux moyennant une astuce passer d'une langue à l'autre dans un document. J'ai publié un article sur le sujet titré Comment créer une interface multilingue avec Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    +1 avec Philippe.
    J'ai fais plusieurs documents multilingues ainsi.
    La seule différence est que je mets la valeur cherchée en dur dans le premier paramètre de RECHERCHEV() et que je mets une liste déroulante pour le choix de la langue, aussi bien pour indiquer les langues prises en charge que pour éviter les erreurs de frappe/orthographe.

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Par défaut
    Bonsoir,
    Avec les différentes pistes proposées, j'ai pu régler le problème en insérant dans le code la ligne suivante : If N = "=#NAME?" Then GoTo Line1.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Effacer_plage()
    '
     
    For Each N In ActiveWorkbook.Names
        If Not N.Name Like "*!*" Then
        If N = "=#NAME?" Then GoTo Line1 ' ligne rajoutée pour éviter plantage ......
     
            N.Delete
     
    Line1:
        End If
    Next
    Mon programme fonctionne à nouveau.

    Merci à tous.

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

Discussions similaires

  1. [XL-2013] Comment intégrer tous les noms de plages nommées d'un classeur dans une combo box?
    Par Xilian dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2015, 13h17
  2. [XL-2003] Supprimer tous les boutons d'un classeur
    Par Un Internaute dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/09/2014, 12h30
  3. [Toutes versions] Supprimer tous les modules d'un classeur et le contenu de thisworbook
    Par kyasteph dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/10/2013, 11h54
  4. [XL-2010] Supprimer tous les noms automatiquement
    Par Salsalex2001 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/03/2013, 08h41
  5. [Toutes versions] Supprimer contenu de tous les noms
    Par jackborogar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/02/2013, 13h49

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