Ouverture longue 2'30

bonjour

Curieusement, sur ce fichier, tous les noms définis sont valides (sans valeur d'erreur) contrairement au précédent fichier.

Il est sur que ce sont eux qui alourdissent le fichier et la dernière suggestion de Claude serait la bonne solution, mais là, je suis incompétent pour la programmation.

Cordialement

Merci Amadéus,

Je vais attendre un des rois de la procédure Claude pour me guider au mieux

A bientôt

Annette

Hélas Annette, on a tous nos limites !

J'ai regardé mais n'arrive à rien.

Je reste pourtant persuadé que la création de tous ces noms/définis est la cause du problème.

désolé de ne pouvoir t'aider davantage,

garde espoir, d'autres passeront par là.

Amicalement

Claude

2classeur1.xlsx (151.65 Ko)

Bonne nuit,

Claude .Merci de ta diligence et à bientôt. Annette

Salut le forum

Un peu plus et je ne donnais pas de réponse.....

An.pi a écrit :

Je vais attendre un des rois de la procédure Claude pour me guider au mieux

J'ai ajouté une petite macro qui supprime les noms définis à la fermeture.

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

Le même fichier sous Excel 2003 ne posait aucun problème à l'ouverture contrairement à Excel 2007.

Le lien du fichier :

Mytå

Bonjour Mytå, forum,

C'est le code que je cherchais en vain,

Toutefois, certains noms doivent pouvoir subsister (exemple "toto")

j'ai essayé d'ajouter un If, sans succès :

Sub ess()
Dim NameDefine ' de Mytå(supprime tous les noms définis)
    For Each NameDefine In ActiveWorkbook.Names
        If NameDefine <> "toto" Then NameDefine.Delete
    Next NameDefine
End Sub

J'en conclus qu'il faille nommer à nouveau en fin de boucle

Sub ess1()
Dim NameDefine ' de Mytå(supprime tous les noms définis)
    For Each NameDefine In ActiveWorkbook.Names
        NameDefine.Delete
    Next NameDefine
Range("Feuil2!b5").Name = "toto"
End Sub

Ou as-tu une autre façon de faire ?

On en apprend tous les jours

Amicalement

Claude

Bonsoir,

pour conserver la zone nommée "toto" :

Dim Nms As Name
For Each Nms In Names
    If Nms.Name <> "toto" Then Nms.Delete
Next Nms

Bonne soirée

-- Mar Fév 23, 2010 7:30 pm --

Re-,

et en complément, si tu veux en garder plusieurs :

Dim Nms As Name
Dim NomsAGarder
NomsAGarder = Array("toto", "titi")
For Each Nms In Names
    If IsError(Application.Match(Nms.Name, NomsAGarder, 0)) Then Nms.Delete
Next Nms

Dans ce code, les zones nommées "toto" et "titi" seront conservées...

Bonne soirée

6chevauxtrot.rar (205.36 Ko)

re,

Là, on reconnait les "Cadors" ! merci Mytå et Felix,

Annette, à toi de jouer

Bonne journée

Claude

Re le forum

Ou encore en supprimant les noms définis qui contiennent FFTT

Dim NameDefine as Name
For Each NameDefine In ActiveWorkbook.Names
If InStr(NameDefine.Name, "FFTT") Then NameDefine.Delete
Next NameDefine

Pas besoin de liste de noms à retenir

Mytå

Bonsoir à tous

Merci pour Ces réponses, qui m'ont solutionné mon problème de temps.

J'ai appliqué sans trop comprendre, pour l'instant solution un peu complexe pour moi.

Pour terminer ma procédure j'ouvre un autre sujet sur la copie entre classeur.

A bientôt

Annette

Rechercher des sujets similaires à "ouverture longue"