Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/12/2011, 21h34   #1
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 14
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 : 14
Points : 5
Points : 5
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 :
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 :
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
pirot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 21h53   #2
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
V4 et DJ12 sont des adresses de cellules.
Tu ne peux pas nommer ainsi des plages parce qu'il y aura un conflit
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 28/12/2011, 22h03   #3
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 14
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 : 14
Points : 5
Points : 5
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
pirot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 22h14   #4
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Trouvé sur le net à essayer
Code :
1
2
3
4
Sub SupprNoms()
 
ExecuteExcel4Macro "SUM(DELETE.NAME(NAMES()))"
End Sub
Edit:
Et aussi sur la FAQ
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/12/2011, 23h07   #5
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 14
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 : 14
Points : 5
Points : 5
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.
pirot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2011, 23h23   #6
Expert Confirmé Sénior
 
Avatar de mercatog
 
Inscription : juillet 2008
Messages : 5 848
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 5 848
Points : 13 907
Points : 13 907
Peux tu mettre en PJ, l'une des feuilles avec ces noms récalcitrants?
__________________
Cordialement.
mercatog est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/12/2011, 10h36   #7
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
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.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2011, 11h05   #8
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 14
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 : 14
Points : 5
Points : 5
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
Type de fichier : xls test_suppr_noms.xls (34,5 Ko, 31 affichages)
pirot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2011, 13h13   #9
Rédacteur
 
Avatar de Ormonth
 
Homme Didier GONARD
Formateur Développeur Office - indépendant
Inscription : février 2008
Messages : 2 353
Détails du profil
Informations personnelles :
Nom : Homme Didier GONARD
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Formateur Développeur Office - indépendant

Informations forums :
Inscription : février 2008
Messages : 2 353
Points : 4 685
Points : 4 685
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 :
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
__________________
Didier Gonard

Ps :
Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite !
Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP
N'oubliez pas de mettre : ..quand c'est le cas !
Ormonth est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/12/2011, 13h47   #10
Invité régulier
 
Homme
Inscription : décembre 2011
Messages : 14
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 : 14
Points : 5
Points : 5
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 :
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
pirot est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h23.


 
 
 
 
Partenaires

Hébergement Web