Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

noms illegaux

16 réponses
Avatar
titeuf24
Bonjour a tous,

j'ai un souci avec des noms que je n'arrive pas a supprimer via une macro.

plusieurs de mes fichiers sont infestes de noms "illegaux" comme "a14",
"a15" etc...

je peux les supprimer a la main, feuille par feuille, mais c'est
interminable. J'ai essaye via une macro (avec une commande
activeworkbook.names(variable).delete), mais ca ne fonctionne pas et je
recupere seulement le message d'erreur "that name is not valid", ce qui est
un comble..

Est-ce que quelqu'un aurait une idee pour me debarasser de ces noms
horripilants?

Merci d'avance,

Titeuf24

6 réponses

1 2
Avatar
titeuf24
personne ne sait vraiment comment on en est arrive la. Beaucoup de nos
fichiers sont bases sur d'anciens fichiers qui etaient deja "infectes" avec
ces noms. En plus, ils etaient invisibles (je les ai decouvert parce que les
fichiers etaient anormalement lourds). Ma meilleure hypothese est que ces
noms viennent d'une vieille version d'Excel ou ils etaient legaux?

Ce truc se repand comme la verole, des que tu copies une feuille, il copie
tous les noms caches avec...et le pire, c'est qu'on avait utilise un de ces
fichiers veroles pour creer nos "book.xlt". Autrement dit, pendant plusieurs
mois, chaque nouveau fichier cree contenait ces noms caches!

Au final, ils sont partout. Depuis que je les ai rendu visibles, je peux les
supprimer a la main, mais vu le nombre de fichiers et de feuilles
contaminees, ce n'est guere possible. Pour bcp de fichiers, j'ai fait ce que
conseillait Daniel et j'ai recree des fichiers entiers via macro, mais bon...

C'etait un peu mon dernier espoir que qqun sur ce forum ait une idee car
j'ai un peu tout essaye de mon cote...tant pis!

En tous les cas, merci pour votre aide et votre interet (j'ai du mal a
expliquer a de non-inities la bizarrerie de la situation...ca fait plaisir de
trouver des gens qui comprennent mon desarroi!).

Bonne soiree,

Christophe.

"michdenis" a écrit :


|Le problème c'est que, par macro, ça t'envoie bouler en disant que le
| nom est incorrect.

Je ne crois pas que cela soit réalisable par macro car le "nom"
n'est pas reconnu comme tel car pour excel, A14 par exemple
représente une adresse de cellule et non un "Nom"

Comme le nom est invalide, je ne vois pas comment y faire
référence dans une macro !

La vraie question : Comment en est-il arrivé là ?




Avatar
michdenis
Ouais, dans ces conditions, il y a toujours ce
type de macro pour les grandes occasions !

Tu copies cette macro dans un module standard,
et tu l'appelles à partir de l'interface de la feuille de
calcul par la fenêtre des Macros (Alt + F8)

Cette procédure fera disparaître tous les noms de
du classeur actif à l'écran.
'---------------------------
Sub test()

Dim Sh As Worksheet, X As Integer, B As Integer

With ActiveWorkbook
Do
'Rendre les noms tous visibles
For Each N In .Names
N.Visible = True
Next
For Each Sh In .Worksheets
For Each N In .Names
N.Visible = True
Next
Next
'Application.Wait Now + TimeValue("0:00:01")
X = ActiveWorkbook.Names.Count
SendKeys "%{I}" & "ND" & "{TAB}"
For a = X To ActiveWorkbook.Names.Count
SendKeys "{Down}" & "%S"
Next
SendKeys "{Esc}"
DoEvents
'Pour tous les noms de toutes les feuilles
For Each Sh In .Worksheets
Sh.Select
B = Sh.Names.Count
DoEvents
SendKeys "%{I}" & "ND" & "{TAB}"
For a = 1 To B
SendKeys "{Down}" & "%S"
Next
SendKeys "{Esc}"
DoEvents
Next
Loop Until .Names.Count = 0
End With
End Sub
'---------------------------




"titeuf24" a écrit dans le message de
news:
personne ne sait vraiment comment on en est arrive la. Beaucoup de nos
fichiers sont bases sur d'anciens fichiers qui etaient deja "infectes" avec
ces noms. En plus, ils etaient invisibles (je les ai decouvert parce que les
fichiers etaient anormalement lourds). Ma meilleure hypothese est que ces
noms viennent d'une vieille version d'Excel ou ils etaient legaux?

Ce truc se repand comme la verole, des que tu copies une feuille, il copie
tous les noms caches avec...et le pire, c'est qu'on avait utilise un de ces
fichiers veroles pour creer nos "book.xlt". Autrement dit, pendant plusieurs
mois, chaque nouveau fichier cree contenait ces noms caches!

Au final, ils sont partout. Depuis que je les ai rendu visibles, je peux les
supprimer a la main, mais vu le nombre de fichiers et de feuilles
contaminees, ce n'est guere possible. Pour bcp de fichiers, j'ai fait ce que
conseillait Daniel et j'ai recree des fichiers entiers via macro, mais
bon...

C'etait un peu mon dernier espoir que qqun sur ce forum ait une idee car
j'ai un peu tout essaye de mon cote...tant pis!

En tous les cas, merci pour votre aide et votre interet (j'ai du mal a
expliquer a de non-inities la bizarrerie de la situation...ca fait plaisir
de
trouver des gens qui comprennent mon desarroi!).

Bonne soiree,

Christophe.

"michdenis" a écrit :


|Le problème c'est que, par macro, ça t'envoie bouler en disant que le
| nom est incorrect.

Je ne crois pas que cela soit réalisable par macro car le "nom"
n'est pas reconnu comme tel car pour excel, A14 par exemple
représente une adresse de cellule et non un "Nom"

Comme le nom est invalide, je ne vois pas comment y faire
référence dans une macro !

La vraie question : Comment en est-il arrivé là ?




Avatar
michdenis
Testé dans Excel 2003 seulement !
Avatar
titeuf24
je m'avoue depasse, je ne comprends pas le code, mais je teste ca demain et
je te dirai si ca a marche.

merci et bonne soiree,

christophe.

"michdenis" a écrit :

Testé dans Excel 2003 seulement !




Avatar
titeuf24
Ca y est, j'ai compris ce que tu voulais faire et l'idee est geniale: c'est
comme ca qu'il faut faire!
J'ai juste eu un peu de mal a la faire marcher car je travaille sur un Excel
anglais et les raccourcis sont legerement differents, mais une fois compris
la logique, j'ai pu corriger tout seul.

Michdenis, un grand, grand merci a toi. Je ne savais meme pas que c'etait
possible, c'est genial!

Bonne journee,

Christophe.

"titeuf24" a écrit :

je m'avoue depasse, je ne comprends pas le code, mais je teste ca demain et
je te dirai si ca a marche.

merci et bonne soiree,

christophe.

"michdenis" a écrit :

> Testé dans Excel 2003 seulement !
>
>


Avatar
michdenis
Ce matin, j'ai apporté quelques légères modifications
quant à la déclaration des variables... le début où
débute la boucle Do ainsi que cette ligne de code
" For Each N In Sh.Names"
dans :
For Each Sh In .Worksheets
For Each N In Sh.Names
où j'avais oublié la variable Sh devant .Names


'---------------------------------------------------------
Sub test1()

Dim Sh As Worksheet, A As Integer
Dim N As Name, B As Integer

With ActiveWorkbook
'Rendre les noms tous visibles
For Each N In .Names
N.Visible = True
Next
For Each Sh In .Worksheets
For Each N In Sh.Names
N.Visible = True
Next
Next
Do
B = ActiveWorkbook.Names.Count
DoEvents
SendKeys "%{I}" & "ND" & "{TAB}"
For A = B To ActiveWorkbook.Names.Count
SendKeys "{Down}" & "%S"
Next
SendKeys "{Esc}"
DoEvents
'Pour tous les noms de toutes les feuilles
For Each Sh In .Worksheets
Sh.Select
B = Sh.Names.Count
DoEvents
SendKeys "%{I}" & "ND" & "{TAB}"
For A = 1 To B
SendKeys "{Down}" & "%S"
Next
SendKeys "{Esc}"
DoEvents
Next
Loop Until .Names.Count = 0
End With
End Sub
'---------------------------------------------------------





"titeuf24" a écrit dans le message de
news:
Ca y est, j'ai compris ce que tu voulais faire et l'idee est geniale: c'est
comme ca qu'il faut faire!
J'ai juste eu un peu de mal a la faire marcher car je travaille sur un Excel
anglais et les raccourcis sont legerement differents, mais une fois compris
la logique, j'ai pu corriger tout seul.

Michdenis, un grand, grand merci a toi. Je ne savais meme pas que c'etait
possible, c'est genial!

Bonne journee,

Christophe.

"titeuf24" a écrit :

je m'avoue depasse, je ne comprends pas le code, mais je teste ca demain
et
je te dirai si ca a marche.

merci et bonne soiree,

christophe.

"michdenis" a écrit :

> Testé dans Excel 2003 seulement !
>
>


1 2