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. 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
    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. 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. 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
        2. 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
        3. 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. 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. 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. 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

              Discussions similaires

              question pix mot caché

              7 réponses