Fichier final trop lourd
Jufil
-
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.
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.
A voir également:
- Fichier final trop lourd
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Wetransfer gratuit fichiers lourd - Guide
2 réponses
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...
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...
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.
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.