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

Suppression tous noms de plage en VBA

7 réponses
Avatar
Isaline
Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir tous les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus, le
".delete" bug à chaque fois.

Je vous remercie

7 réponses

Avatar
JB
Bonjour,

For Each N In ActiveWorkbook.Names
N.Delete
Next N

Pour une feuille:

F = "feuil1"
For Each N In ActiveWorkbook.Names
If InStr(UCase(N), UCase("=" & F & "!")) > 0 Then N.Delete
Next N

JB
http://boisgontierjacques.free.fr/
On 17 mar, 18:02, Isaline wrote:
Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir to us les
effacer en une seule fois, et ne pas faire ça manuellement.

Après maintes recherches voilà les éléments que j'ai trouvé et q ui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plu s, le
".delete" bug à chaque fois.

Je vous remercie


Avatar
Gaston
Bonjour Isaline,
Ton "Sub EffaceNom" à une petite erreur:
Change Workbook.Names pour ActiveWorkbook.Names
et tout devrait fonctionner
Gaston

"Isaline" wrote:

Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir tous les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus, le
".delete" bug à chaque fois.

Je vous remercie


Avatar
Isaline
Bonjour JB, bonjour Gaston,

merci de vos réponses, avec Activeworkbook, c'est effectivement plus
correct, mais malheureusement, le
N.delete ne fonctionne toujours pas.

J'ai testé de définir N par plusieurs choses : Name, Object... mais rien n'y
fait.
peu importe la façon de l'écrire, le N.delete bloque.

Je vous remercie, je vais fouiller dans les divers sites internet parlant
d'excel, encore, pour voir si quelqu'un à la réponse ^^ en plus de votre aide.

Isaline




Bonjour Isaline,
Ton "Sub EffaceNom" à une petite erreur:
Change Workbook.Names pour ActiveWorkbook.Names
et tout devrait fonctionner
Gaston

"Isaline" wrote:

Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir tous les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus, le
".delete" bug à chaque fois.

Je vous remercie




Avatar
JB
Bonjour,

http://cjoint.com/?dsoS7yjRnp

JB

On 18 mar, 12:32, Isaline wrote:
Bonjour JB, bonjour Gaston,

merci de vos réponses, avec Activeworkbook, c'est effectivement plus
correct, mais malheureusement, le
N.delete ne fonctionne toujours pas.

J'ai testé de définir N par plusieurs choses : Name, Object... mais ri en n'y
fait.
peu importe la façon de l'écrire, le N.delete bloque.

Je vous remercie, je vais fouiller dans les divers sites internet parlant
d'excel, encore, pour voir si quelqu'un à la réponse ^^ en plus de vot re aide.

Isaline




Bonjour Isaline,
Ton "Sub EffaceNom" à une petite erreur:
Change Workbook.Names pour ActiveWorkbook.Names
et tout devrait fonctionner
       Gaston

"Isaline" wrote:

Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstin e à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoi r tous les
effacer en une seule fois, et ne pas faire ça manuellement.

Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue p our un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la p lage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus, le
".delete" bug à chaque fois.

Je vous remercie- Masquer le texte des messages précédents -



- Afficher le texte des messages précédents -




Avatar
Proust Michel
pour moi ça marche bien
For Each nom In ActiveWorkbook.Names
ActiveWorkbook.Names(nom.Name).Delete
Next

"Isaline" a écrit dans le message de
news:
Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à
ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir tous
les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms
de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un
nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par
une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus,
le
".delete" bug à chaque fois.

Je vous remercie


Avatar
Isaline
Merci JB, Merci Michel.
j'ai testé grâce au fichier de JB : ça marche bien, sauf avec les noms que
j'ai créé par une autre macro.
Donc je vais revoir la façon dont je crée mes noms de plage, c'est de là que
vient le problème.

Je vous remercie de votre aide!


pour moi ça marche bien
For Each nom In ActiveWorkbook.Names
ActiveWorkbook.Names(nom.Name).Delete
Next

"Isaline" a écrit dans le message de
news:
Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine à
ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite pouvoir tous
les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes noms
de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui échoue pour un
nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom de la plage par
une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas plus,
le
".delete" bug à chaque fois.

Je vous remercie







Avatar
khidrako
Le lundi 17 Mars 2008 à 18:02 par Isaline :
Bonjour,

je me permets de solliciter une aide pour un bout de code qui s'obstine
à ne
pas vouloir fonctionner.
Je créée plein de noms de plages de cellules et je souhaite
pouvoir tous les
effacer en une seule fois, et ne pas faire ça manuellement.


Après maintes recherches voilà les éléments que
j'ai trouvé et qui ne
fonctionne malheureusement pas :

Sub efface1()
Dim N As Name
Sheets("Data").Select
With ActiveSheet
For Each N In .Names
N.Delete
Next
End With
End Sub

--> ne bugge pas mais n'a pas du tout l'effet escompté, puisque mes
noms de
plage sont toujours là.

et j'ai également trouvé :

Sub EffaceNom()
Dim Nom as Name
For each Nom in Workbook.names
Nom.delete
Next Nom
End sub

--> le problème ici se trouve au niveau du Nom.delete qui
échoue pour un nom
non valide.

J'ai testé avec l'éditeur de macro, en remplaçant le nom
de la plage par une
variable qui prenait le nom de chaque plage, et ça ne fonctionne pas
plus, le
".delete" bug à chaque fois.

Je vous remercie


Bonsoir,

Je me permets de relancer le fils de discussion car j'ai le même problème qu'Isaline,à savoir "n.delete" qui bug lors du lancement de la macro.

Apparement le dernier fichier envoyé par JB aidait à résoudre le problème. Cependant, au vu de l'ancienneté du post, le lien est mort...

Ci dessous le code que j'ai entré :

Sub SUPPRIMER_NOMS()
Dim n As Name
For Each n In ActiveWorkbook.Names
n.Delete
Next n
End Sub

Exemple de nom que j'ai dans mon classeur :

Nom : HEURESCLD
Valeur : {...}
Fait référence à : ='C:..[Nom fichier.xlsm]Nom_Feuille'!$A:$A

Vous remerciant par avance de l'aide que vous pourriez m'apporter.

Bien à vous,

Khidrako