La taille du fichier Excel augmente sans cess [Résolu/Fermé]

Signaler
-
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013
-
Bonjour,
une macro VBA remet à jour un annuaire sous Excel2003 sur demande en chargeant un fichier texte
Toutes les feuilles du classeur sont remises à 0 au départ de la macro, l'opération se déroule normalement
Les remises à jour se succèdent mais je constate que mon fichier voit sa taille augmenter régulièrement
de 1Ko à chaque mise à jour (taille de départ 160Ko)
Une analyse avec ExamDiff me montre que la trace "Feuil1!FFBMembreGestion.ServletTelechargementExtraction : Feuil1!FFBMembreGestion.ServletTelechargementExtraction_1 : Feuil1!FFBMembreGestion.ServletTelechargementExtraction_2 " vient se rajouter à chaque mise à jour.
Comment éviter ce phénomène?
Merci de vos conseils
Cordialement

9 réponses

Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

Bonsoir
Je constate que la cause me parait être l'adjonction de plages nommées (en allant dans fichier-->propriétés
la liste des plages nommées s'allonge)
Comment effacer ces plages?
Pourtant la macro sélectionne la feuille1et supprime toutes les cellules avant de récupérer les nouvelles données!
Des idées
Merci d'avance
Cordialement
PS pap77 et pap77300 ne font qu'un
En voulant m'inscrire après avoir posté mon message mon pseudo pap77 n'a pas été accepté!
Veuillez m'en excuser
Messages postés
24138
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
6 842
Bonsoir,

Tu pourrais essayer de supprimer le nom avant l'importation (avec un traitement d'erreur au cas où le nom soit déjà supprimé) :
On error resume next
ThisWorkbook.Names("Feuil1!FFBMembreGestion.ServletTelechargementExtraction").Delete
On error goto 0


eric
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

Bonjour eriiic
Merci de ta réponse
Si elle n'était pas efficace car elle supprimait le contenu mais pas le nom, elle m'a permis de résoudre mon PB
J'ai rajouté une ligne supprimant la ("Feuil1!")

Au démarrage suivant je crée une nouvelle ("Feuil!1")
Merci encore
Cordialement

pap

PS comment mettre en "PB résolu"?
Messages postés
24138
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
6 842
Tant mieux si ça t'a inspiré et que tu aies résolu ton pb.
Je suis quand même étonné que ThisWorkbook.Names("Feuil1!").Delete supprime ta feuille (???)
C'est plutôt worksheets("Feuil1").delete qu'il faut utiliser.

eric
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

Bonjour eriiic
Jai utilisé : "ActiveWindows.SelectedSheets.Delete"
et pour recréer "Sheets.Add" suivi de "ActiveSheets.Name="Feuil1"
Merci de tes conseils fort utiles pour le débutant en Macros que je suis
Cordialement

pap
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

Bonjour à tous
Je réactive mon topic pour obtenir des précisions
Mon programme fontionne de manière satisfaisante

Pour régler mon problème j'ai introduit ce code :

Dim n As Variant
For Each n In Names
If Left(n.Name, 20) = "Auxiliaire!FFBMembre" Then n.Delete
Next
Columns("A:IV").Delete

La boucle supprime les noms de plages, mais ne nettoie pas la feuille qui accumule les plages de données importées et se remplit très vite!!
Il faut donc nettoyer la feuille, c'est le rôle de la dernière ligne.
Mais, car il y a un mais (pas très grave )
que je voudrais bien résoudre par pur perfectionnisme :
Le nom de ma plage se recrée à chaque requête, ce qui est normal, mais en s'incrémentant d'un à chaque exécution
feuil1!FFBMembre_xx (xx est un nombre!)
Comment tout remettre à 0
Merci de vos réponses
Pap
Messages postés
24138
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
6 842
>Bonsoir,

Ca pourrait être interessant que tu fournisses la partie création de la feuille et du nom.
eric
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

bonjour Eric
Merci de t'être manifesté

Voici mon code:
' Macro1 Création nouvelle feuille
Sub Macro1()

Sheets.Add
ActiveSheet.Name = "Annuaire"
ActiveCell.FormulaR1C1 = "Nom"
Range("B1").Select
ActiveCell.FormulaR1C1 = "Prénom"
Range("C1").Select
Sheets("Annuaire").Select

End Sub

'Suppression d'une feuille

Sub Macro2()

ActiveWindow.SelectedSheets.Delete

End Sub

Petit inconvénient un message d'alerte sur la suppression de données...
Cest pour cette raison que je ne l'utilise pas

Cordialement
Pap77300
Messages postés
24138
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
6 842
Je ne vois pas la création du nom...

Petit inconvénient un message d'alerte sur la suppression de données...
S'il s'agit d'une demande de confirmation tu peux la zapper avec application.displayalerts=false (remettre à true à la fin)

eric
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

Rebonjour eriiic
Merci ta proposition fonctionne et me permet de réutiliser la suppression de la feuille.

Voici ma requête :

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Bridge-annuaire\FFBMembreGestion.ServletTelechargementExtraction", _
Destination:=Range("A1"))
.Name = "FFBMembre"

Annuaire!FFBMembre_40 s'incrémente d'un à chaque exécution!

Cordialement
Pap77300
Messages postés
24138
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
22 juillet 2021
6 842
For Each n In Names
If Left(n.Name, 20) = "Auxiliaire!FFBMembre" Then n.Delete
Next

et

Annuaire!FFBMembre_40 s'incrémente d'un à chaque exécution!

Les noms de feuilles ne sont pas très cohérents non ?

eric
Messages postés
18
Date d'inscription
lundi 8 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013

La requête se fait dans la feuille Annuaire
Tu as tout à fait raison mais entre les 2 j'ai beaucoup travaillé mon sujet et changer quelques variables!!!!
Je te présente mes excuses pour ces incohérences
Tes conseils ont été précieux et m'ont permis de terminer mon programme
En quelques clics de souris le secrétaire du club peut imprimer annuaire téléphonique, adresses internet et adresses postales....le tout extrait directement du fichier de la Fédération!
Un grand merci!
Cordialement
Pap77300