IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

réduire la taille d'un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut réduire la taille d'un fichier
    J'avance tout doucement dans une macro qui crée des feuilles et des tableaux à partir de modèles situés dans le même classeur.

    Le problème que j'ai, c'est que la taille du fichier devient vite incroyable (plusieurs MO) alors que ce ne sont que des tableaux copiés-collés... Ceci a pour effet gênant de ralentir la mnipulation de ses tableaux, et évidemment le transport du fichier

    Si quelqu'un a une idée pour limiter ce phénomène.

    Voici le code qui crée les tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Sub Création()
     
    'Vidage des feuilles
     
        For Each Feuille In ActiveWorkbook.Worksheets
            If Left(Feuille.Name, 7) = "Produit" Or Left(Feuille.Name, 9) = "Resultats" Then
                Application.DisplayAlerts = False
                Feuille.Delete
                Application.DisplayAlerts = True
            End If
        Next Feuille
     
    'déclaration des variables
        Sheets("évaluation_produit").Activate
     
        Dim modele As Range
        Set modele = Range("modele")
     
        Dim modele2 As Range
        Set modele2 = Range("modele2")
     
        Dim CellCour As Range
     
        Dim NbProd As Integer
        NbProd = Range("NbProd").Value
        Dim NbT As Integer
        NbT = Range("NbT").Value
        Dim NbZone As Integer
        NbZone = Range("NbZone").Value
     
     
        Dim CellCourr As Range
     
        Dim CellCoura As Range
     
        Dim p As Integer
        Dim z As Integer
        Dim t As Integer
     
     
     
    For p = 1 To NbProd
     
        Set sh = ActiveWorkbook.Sheets.Add
        sh.Name = ("Produit" & p)
        sh.Move Before:=Sheets(4 + p)
        Set CellCour = Range("A3")
        Set sg = ActiveWorkbook.Sheets.Add
        sg.Name = ("Resultats" & p)
        sg.Move Before:=Sheets(4 + 2 * p)
        Set CellCoura = Range("A1")
        For z = 1 To NbZone
            For t = 1 To NbT
    'création des tableaux d'évaluation
                sh.Activate
                modele.Copy
                CellCour.Activate
                ActiveSheet.Paste
                CellCour.Value = ("T" & t)
                CellCour.OffSet(1, 0).Value = ("zone" & z)
                Set CellCour = CellCour.OffSet(11, 0)
    'création des tableaux de calculs résultats
                sg.Select
                modele2.Copy
                CellCoura.Select
                ActiveSheet.Paste
                CellCoura.OffSet(2, 0).Value = ("T" & t)
                CellCoura.OffSet(3, 0).Value = ("Zone" & z)
                Set CellCoura = CellCoura.OffSet(13, 0)
            Next
            Set CellCoura = Range("A1").OffSet(0, 28 * z)
            sh.Select
            Set CellCour = Range("A3").OffSet(0, 12 * z)
        Next
    Next
     
     
        Application.CutCopyMode = False
    End Sub

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Autre chose : la ligne "ActiveSheet.Paste" prend toujours beaucoup de temps à s'éxécuter.
    Au départ, il y avait des tas de liaisons vers d'autres cellules dans les tableaux à copier, mais je les ais enlevées.
    Je ne comprends vraiment pas pourquoi c'est si long, et si gros !
    Quelqu'un a-t-il une idée ?

    Merci d'avance

  3. #3
    Membre régulier
    Inscrit en
    Juin 2007
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 147
    Points : 103
    Points
    103
    Par défaut
    Si jamais tu copies les feuilles entières et que tu les colles alors t'as trouver totn problème. ^^

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut Virus ou blague de MicroSoft ?
    J'ai trouvé pourquoi mes tableaux avaient une taille colossale !
    Vous me croirez si vous voudrez, mais en voici la raison :

    Entre les lignes s'étaient glissées une quantité d'images, réduites à l'épaisseur d'un trait, et positionnnées juste sur l'interligne, de sorte qu'on ne les voyait pas.
    Par hasard, j'ai cliqué sur l'une d'elles, et par curiosité l'ai agrandie. Il s'agissait d'un smiley grimaçant. Sous elle une seconde, puis une troisième... (Le nom de la première image était 2452 je crois... ). Le fin du fin, c'est que c'étaient des images différentes : le smiley est de plus en plus souriant !

    Voilà. J'ai donc résolu mon problème, mais çà me fait rire jaune !

    PS : pour ceux que çà intéresse, cette discussion fait suite à celle intitulée " réduire la taille d'un fichier".

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Salut Swiper,

    J'ai trouvé la solution de mon problème (cf discussion "Virus ou blague de MicroSoft").

    Mais pourquoi ne faut-il pas copier des feuilles entières ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    les images sont comme ça parce que dans propriété elle sont défini comme : déplacer et dimensionner avec les cellules, et que les lignes sur lesquelles elle étaient, ont été effacée.
    question a 1 euro
    si
    Citation Envoyé par amiral19
    Cette discussion fait suite à celle intitulée " réduire la taille d'un fichier".
    pourquoi ne pas l'avoir écrite à la suite?

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Pour les images : ce sur quoi je n'ai pas insisté c'est que je n'ai aucune idée d'où peuvent sortir ces images. Effectivement, le redimensionnement ne m'aurait que moyennement étonné...

    Pour la réponse à 1 euro : Parce que vu l'étrangeté (à mes yeux novices) de la chose, çà me semblait faire l'objet d'une nouvelle discussion. J'ai gagné ?

  8. #8
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Non, Perdu! Désolée!

    Vu que c'est en fait la solution de ton problème de l'autre message.

    Je fusionne donc les deux.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Ok zazaraignée !
    J'ai encore bien des choses à apprendre avant de devenir un vrai membre du club !
    N'empêche que je trouve cette histoire assez intrigante... Et puis je me demande si les développeurs de MS sont capables de glisser ce genre de petites blgues dans leur code, ou si j'ai attrapé çà ailleurs.

  10. #10
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et moi donc!

    Ces images, elles n'étaient pas dans le fichier d'origine sur lequel tu as fait tes copier (avant de faire le coller) ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    eh non !
    J'en suis sur, puisque c'est moi qui ai crée le fichier d'origine !

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    sans faire aucun copié coller?

  13. #13
    Nouveau membre du Club
    Inscrit en
    Juin 2007
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 55
    Points : 27
    Points
    27
    Par défaut
    Si effectivement, j'ai copié le modèle de ce petit tableau à partir d'un autre fichier. Mais je l'ai encore ce fichier original, et pas de trace d'image dedans.
    Néanmoins, je dois bien avouer que même si je vois mal son auteur avoir glissé ce genre de blagues, je ne sais pas d'où il a lui même tiré un éventuel modèle.
    Enfin, je le répète, pas de trace (visible) de ces smileys dans ledit fichier original.

    Bref ! J'imagine que j'ai chopé une sorte de virus quelque part. non ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment réduire la taille d'un fichier.pps.ppt?
    Par nanomaz dans le forum Powerpoint
    Réponses: 2
    Dernier message: 27/02/2017, 13h37
  2. Réponses: 5
    Dernier message: 31/10/2014, 14h55
  3. Réduire la taille d'un fichier via JCL
    Par ALaurent22 dans le forum z/OS
    Réponses: 3
    Dernier message: 22/02/2012, 10h02
  4. Réduire la taille d'un fichier SWF
    Par leyeno dans le forum Flex
    Réponses: 2
    Dernier message: 08/04/2011, 15h15
  5. Réponses: 2
    Dernier message: 20/12/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo