La taille du fichier Excel augmente sans cess

Résolu
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
Configuration: Windows XP / Firefox 3.6/Excel2003

9 réponses

  1. 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
    0
    1. Contributeur
      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
      0
      1. 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"?
        0
    2. Contributeur
      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
      0
      1. 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
        0
        1. 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
          0
          1. Contributeur
            >Bonsoir,

            Ca pourrait être interessant que tu fournisses la partie création de la feuille et du nom.
            eric
            0
        2. 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
          0
          1. Contributeur
            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
            0
        3. 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
          0
          1. Contributeur
            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
            0
            1. 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
              0