Fichier final trop lourd

Jufil -  
 Jufil -
Bonjour,

J'en appelle encore à vos lumières...

J'ai créé une macro de mise en forme qui regroupe 17 fichiers Excel en 1 Fichier contenant 17 Onglets et qui met tout en forme.
Mon code est très long, car j'ai copier les actions du 1er Fichier 17 fois en modifier les noms.
Du coup, une fois la macro lancée et le Fichier final généré, cela donne un Classeur d'environ 19000 Ko !
Ca me semble curieux, car le fichier contenant la macro ne fait que 119 Ko et je n'ai aucune formule dans le nouveau fichier.

Que puis-je faire pour réduire la taille du fichier final ?

Merci pour votre aide.

2 réponses

  1. cousinhub29 Messages postés 1114 Date d'inscription   Statut Membre Dernière intervention   380
     
    Bonjour,

    Comme ça, de but en blanc, sans voir la macro de "synthèse", cela va être assez difficile...

    Cependant, un petit conseil, afin d'aller au "plus court", tu ne recopies que la zone utile de chaque fichier....

    Un fichier de 17 onglets, à 19 Mo, cela peut être possible, mais dans ce cas, les onglets sont relativement "copieux"....

    Est-ce qu'il y a des graphiques, des dessins, des Tableaux Croisés Dynamiques, des objets, des images.....?

    @ te relire...
    0
  2. Jufil
     
    Bonjour,

    D'abord, merci pour ta réponse.

    Pour être plus précise, quand la mise en forme est faite manuellement, le Fichier ne fait que 300 Ko. Il n'y a que du texte, pas de formule, ni de TCD, ni de graphique ou autre. De plus, il y a rarement plus de 500 Lignes par onglet.

    Je mets ci-dessous la partie du code que je reproduit pour chaque onglet
    --> Attention, il est particulièrement inbuvable ! J'avais mis un post pour savoir comment faire une boucle plus simple, mais je n'ai pas eu de réponses (sans doute dû à la taille de ma macro !) et du coup j'ai laissé tomber.
    --> J'ai mis en Gras les noms de fichiers et onglets que j'ai modifié à chaque fois.
    __________________________________
    'Répéter Action Copie Onglets entre*

    '17. Fichier " Sur commande client Vide.xls"
    'Ouverture Fichier
    Application.Workbooks.Open "Z:\4_QUALITE DU REFERENTIEL\Contrôle attributs PMM\Attributs PMM\Fichiers anomalies\ Sur commande client Vide.xls"
    Windows(" Sur commande client Vide.xls").Activate

    'Copie de l'onglet
    Sheets("09- Sur commande client Vide").Select
    Sheets("09- Sur commande client Vide").Copy after:=Workbooks( _
    "- Fichier Macro.xls").Sheets(nbonglet)

    'Copie Nom
    Sheets("Feuil1").Select
    Range("A1").Select
    Selection.Copy
    Windows("- Fichier Macro.xls").Activate
    Sheets("09- Sur commande client Vide").Select
    Range("J1").Select
    ActiveSheet.Paste

    'Mise en Page
    Range("A1:M500").Select
    With Selection.Borders(xlEdgeLeft)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
    .LineStyle = xlContinuous
    .Weight = xlThin
    .ColorIndex = 15
    End With

    Columns("J:J").Select
    Selection.Interior.ColorIndex = 40
    Columns("K:K").Select
    Selection.Interior.ColorIndex = 35
    Range("J1:K1").Select
    Selection.Interior.ColorIndex = 15
    Range("K1").Select
    ActiveCell.FormulaR1C1 = "Commentaires"
    Range("K2").Select

    'Formule Recherchev
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

    Range("J2").Select
    ActiveCell.FormulaR1C1 = _
    "=IF(ISBLANK(RC[-9]),"""",VLOOKUP(RC[-91],INDIRECT(""'[""&R1C10&""]09- Sur commande client Vide'!$A:$K""),11,0))"
    Range("J3").Select
    Range("J2:J500").FillDown

    Columns("J:J").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("K23").Select

    Rows("1:1").Select
    Selection.AutoFilter

    'Fermeture Fichier
    Workbooks(" Sur commande client Vide.xls").Close
    __________________________________

    Encore une fois, merci pour ton aide.
    0
    1. Jufil
       
      Je me doutais bien qu'en ajoutant le code, ça allait être plus compliqué... C'est imbuvable hein !
      0
    2. Jufil
       
      Une réponse aurait quand même été la moindre des choses...
      0