• Initiateur de la discussion Initiateur de la discussion amoadam
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

amoadam

Guest
Bonjour à toutes et tous,
J'ai 25 fichiers avec un onglet par fichier.
J'ai créer un fichier dans lequel j'importe ces onglets dans un seul fichier. Cela fait donc un fichier avec 25 onglets.
J'ai fait cette importation en faisant un copie collé simple par macro. Au final mon fichier est énorme + de 100Mo alors qu'il n'y a aucune formule et aucun TCD juste des donnés simples.
Quelqu'un pourrait-il me dire ce qui explique le phénomène ?
Quand je le fait manuellement, je n’atteins pas ce poids pour le fichier bien loin de là.

Je vous remercie pour votre aide.

Amaury
 
Re : Fichier Lourd

Effectivement il s'agit bien d'un copié de toute la feuille.

Voici la macro :

ChDir "I:\LO"
Workbooks.Open Filename:="I:\LO\LEIxx.csv"
Columns("A:I").Select
Selection.Copy
Windows("LEIvierge.xlsm").Activate
Sheets("DR02").Select
Range("A1").Select
ActiveSheet.Paste
Range("A1").Select
Windows("LEIxx.csv").Activate
ActiveWindow.Close

C'est quoi l'histoire du "usedrange" ? cca me plait bien !! ;-)
 
Re : Fichier Lourd

Effectivement il s'agit bien d'un copié de toute la feuille.
C'est quoi l'histoire du "usedrange" ? cca me plait bien !! ;-)

La touche F1 est ton amie 🙂
Je te laisse regarder

une macro pour sélectionner le used range effectif
Code:
Sub VraiUsedRange()   
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
       Cells.Find(What:="*", SearchOrder:=xlByColumns, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Column).Select 
End Sub

le même mais qui sélectionne les cellules contenant des formules renvoyant "" si tu as besoin de les sélectionner également

Code:
Sub VraiUsedRange2()   
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
       Cells.Find(What:="*", SearchOrder:=xlByColumns, _
       SearchDirection:=xlPrevious, LookIn:=xlformulas).Column).Select 
End Sub
 
Re : Fichier Lourd

Je te remercie. Ca fonctionne bien !!

Connaissez-vous le moyen maintenant que ça réponde "NON" au message :
"Le Pesse-Papiers contient une rande quantité d'infomation. Voulez vous avoir la possibilité de coller ces infomations dans un autre document ultérieurement ?"



La touche F1 est ton amie 🙂
Je te laisse regarder

une macro pour sélectionner le used range effectif
Code:
Sub VraiUsedRange()   
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
       Cells.Find(What:="*", SearchOrder:=xlByColumns, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Column).Select 
End Sub

le même mais qui sélectionne les cellules contenant des formules renvoyant "" si tu as besoin de les sélectionner également

Code:
Sub VraiUsedRange2()   
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
       Cells.Find(What:="*", SearchOrder:=xlByColumns, _
       SearchDirection:=xlPrevious, LookIn:=xlformulas).Column).Select 
End Sub
 
Re : Fichier Lourd

Bonjour à tous

Effectivement il s'agit bien d'un copié de toute la feuille.
Dans ce cas, pourquoi ne pas faire l'équivalent en VBA de (Clic-droit sur onglet Déplacer ou copier / [X] Créer une copie
Voir exemple ci-dessous
Code:
Sub Macro1()'code issu de l'enregisteur de macros
Sheets("XXXXX").Select
Sheets("XXXXX").Copy Before:=Workbooks("Classeur2").Sheets(1)
End Sub
A adapter à ta problématique.
 
Re : Fichier Lourd

Bonjour Misange

Dans le code suivant, tu veux probablement mettre

Code:
LookIn:=xlformulas).Row, _

Code:
Sub VraiUsedRange2()   
Range("A1").Resize(Cells.Find(What:="*", SearchOrder:=xlRows, _
       SearchDirection:=xlPrevious, LookIn:=xlValues).Row, _
       Cells.Find(What:="*", SearchOrder:=xlByColumns, _
       SearchDirection:=xlPrevious, LookIn:=xlformulas).Column).Select 
End Sub


Cordialement

Docmarti
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
1 K
Réponses
3
Affichages
885
  • Question Question
Réponses
36
Affichages
3 K
T
Réponses
5
Affichages
1 K
Thomexcel
T
Réponses
1
Affichages
664
Retour