La taille du fichier Excel augmente sans cess

Résolu
pap77 -  
pap77300 Messages postés 19 Statut Membre -
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. pap77300 Messages postés 19 Statut Membre
     
    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
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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. pap77300 Messages postés 19 Statut Membre
       
      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
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  4. pap77300 Messages postés 19 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pap77300 Messages postés 19 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      >Bonsoir,

      Ca pourrait être interessant que tu fournisses la partie création de la feuille et du nom.
      eric
      0
  7. pap77300 Messages postés 19 Statut Membre
     
    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. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
  8. pap77300 Messages postés 19 Statut Membre
     
    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
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  10. pap77300 Messages postés 19 Statut Membre
     
    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