Macro N.delete qui renvoie une erreur

  • Initiateur de la discussion Initiateur de la discussion citizenbaban
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

citizenbaban

Guest
Bonjour à tous,

Petit problème avec une macro qui tournait très bien pendant une semaine et qui me renvoie une erreur 1004 avec erreur de syntaxe sur le N.delete depuis hier soir, depuis que j'ai copié le fichier dans un autre dossier.

VB:
Sub Suppression_Noms_Plages()

Dim N As Name
For Each N In Names
If N.Name <> "Mode_1" Then N.Delete
Next

End Sub


Je ne m'explique pas vraiment pourquoi ce changement, je compte sur vous pour éclairer ma lanterne 🙂

Citizen
 
Bonjour
Peut être qu'avec le contexte du fichier , on pourrait comprendre ?

Bonjour Hervé62,

En fait j'ai une macro qui me permet de créer des onglets à partir d'une trame et de créer des noms de plage en fonction de ces noms d'onglets. Le nombre d'onglets peut varier de 1 à 10 en fonction des besoins et donc le nombre de plages créés entre 2 et 20 :

VB:
    Range("K2", Range("K2").End(xlDown)).Select
    Names.Add Name:="Valeurs_" & ActiveSheet.Name, RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

    Range("L2", Range("L2").End(xlDown)).Select
    Names.Add Name:="Concatener_" & ActiveSheet.Name, RefersTo:="=" & ActiveSheet.Name & "!" & Selection.Address

Je souhaiterai pouvoir supprimer tous les noms de plage en fin de manip pour remettre le fichier dans son état initial en conservant uniquement le nom de plage "Mode_1", donc en supprimant les 2 à 20 autres noms créés précédemment.

J'ai vu sur le forum que pas mal de monde avait des soucis avec les actions de .Delete mais sans trouver de solution pour autant 🙁
 
Dernière modification par un modérateur:
Bonjour tout le monde,
Dans votre macro Suppression_Noms_Plages, à quoi correspond Names ?
Bonjour Sylvanu,

Names correspond à ActiveWorkbook.Names, je pourrais en effet le remplacer dans le code mais le problème porte vraiment sur le N.delete qui est surligné dans le débogueur et me renvoie ce message d'erreur :

Erreur d'exécution '1004':

Le nom entré n'est pas valide.

Raisons possibles :

- le nom ne commence pas par une lettre ou un trait de soulignement

- le nom contient un espace ou un autre caractère invalide

- le nom est en conflit avec un nom prédéfinit dans Excel ou le.... (le reste n'est accessible)
 
Dernière modification par un modérateur:
Je tenterais ça :
VB:
Sub Suppression_Noms_Plages()

Dim N As Name, DernierNom as string
For Each N In Names
   DernierNom=N.name
   If N.Name <> "Mode_1" Then N.Delete
Next

End Sub
Lorsque le bug apparait on a la valeur qui pose problème dans DernierNom. Ca donne au moins une piste.
 
Je tenterais ça :
VB:
Sub Suppression_Noms_Plages()

Dim N As Name, DernierNom as string
For Each N In Names
   DernierNom=N.name
   If N.Name <> "Mode_1" Then N.Delete
Next

End Sub
Lorsque le bug apparait on a la valeur qui pose problème dans DernierNom. Ca donne au moins une piste.
Je n'ai rien qui s'affiche excepté le message d'erreur cité au dessus 😕 et dans le gestionnaire de noms, tous mes noms de plage sont présents, ça plante dès le 1er nom
 
Oui, mais dans la fenetre des variables locales, que vaut DernierNom ?
D'autre part, avez vous remis votre fichier dans l'ancien amplacement et vérifiez qu'il fonctionne toujours ?

Et surtout apprenez à répondre aux questions, comme celle d'Hervé : "C'est compliqué de joindre le fichier , ou juste un bout ? "
Avec un fichier c'est toujours plus simple, ça permettrait par ex de voir si sur nos PC on reproduit le problème.
 
Oui, mais dans la fenetre des variables locales, que vaut DernierNom ?
D'autre part, avez vous remis votre fichier dans l'ancien amplacement et vérifiez qu'il fonctionne toujours ?

Et surtout apprenez à répondre aux questions, comme celle d'Hervé : "C'est compliqué de joindre le fichier , ou juste un bout ? "
Avec un fichier c'est toujours plus simple, ça permettrait par ex de voir si sur nos PC on reproduit le problème.

Le fichier à son ancien emplacement ne marche plus non plus. Dernier_nom renvoie "_xlfn.MODE.SNGL".
Concernant la réponse à Hervé, il fallait que je retire ce qui pouvait être confidentiel donc c'était un peu long.
 
😕 ça semble cohérent avec le fait qu'elle tournait bien la semaine dernière...
Est-ce qu'en faisant une copie du fichier et en testant sur la copie ça marche aussi ? je ne vois pas pourquoi une copie aurait mis le bouzin mais pourquoi pas.

J'ai bien une fonction mode.simple dans une feuille mais qui renvoie à une autre plage qui n'est pas nommée. Dans le doute je viens de la supprimer mais sans plus de réussite
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
  • Résolu(e)
Réponses
2
Affichages
1 K
clarouche33
C
T
Réponses
5
Affichages
1 K
T
L
Réponses
13
Affichages
1 K
L
C
Réponses
1
Affichages
2 K
Cekankonvaou
C
S
  • Question Question
Réponses
6
Affichages
2 K
StagiairePasPayé
S
V
Réponses
2
Affichages
2 K
vynmarius
V
C
Réponses
3
Affichages
926
T
Réponses
3
Affichages
1 K
tetchounie
T
Retour