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?
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à ?
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 !
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à ?
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à ?
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" <titeuf24@discussions.microsoft.com> a écrit dans le message de
news: E56AACD6-6CB1-4F6A-BE6A-7D9A95E53A85@microsoft.com...
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 !
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 !
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 !
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 ! > >
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.
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 ! > >
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 ! > >
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" <titeuf24@discussions.microsoft.com> a écrit dans le message de
news: A5562CE6-DDEB-4921-88C9-F2945CF0A5F5@microsoft.com...
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.
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.