Lenteur copier coller entre deux fichiers

Bonjour à tous,

Malgré mes nombreuses recherches sur le net je ne trouve aujourd’hui aucune réponse à mon problème c'est pourquoi je me tourne vers vous, experts en Excel.

Alors voilà je dois effectuer un copier-coller d’un tableau pouvant aller de 2 000 à 20 000 lignes sur 10 colonnes entre deux fichiers. Je comprends bien qu’un copier-coller de ce nombre de données peut durer longtemps cependant il arrive que le copier-coller se fasse instantanément alors que d’autres fois il peut mettre jusqu’à 20 minutes.

Lorsque le copier-coller se fait instantanément le message suivant apparaît.

capture

Je ne trouve aucune raison à ses différences de temps, si quelqu’un a une réponse à mon problème j’en serais ravi.

Merci d’avance pour vos réponses.

Bonjour,

Que contient la plage copiée ? Des données uniquement ? Des formules (avec ou sans lien externe ?) ? Des images, formes, graphiques ?

Et aussi et surtout, POURQUOI as-tu besoin de réaliser fréquemment des copier/coller ?

Bonjour, Salut Pedro !

Un copier-coller est lent !

Donc autant que possible on ne copie-colle pas !

Si on n'a que des valeurs, on procède par affectation directe de valeurs.

Si on doit conserver une mise en forme, on affecte les valeurs et on reconstruit la mise en forme.

Ce n'est que si l'on doit conserver formules et mise en forme complexe que le copier-coller retrouve un intérêt, et dans ce cas on ne désigne comme cible du collage que la cellule supérieure gauche de la plage destinataire.

Cordialement.

Que contient la plage copiée ? Des données uniquement ? Des formules (avec ou sans lien externe ?) ? Des images, formes, graphiques ?

Les cellules copiées ne contiennent que des données sans aucun lien externes aucune image et aucun graphique.

Et aussi et surtout, POURQUOI as-tu besoin de réaliser fréquemment des copier/coller ?

Ce fichier provient d’une extraction d’un logiciel de mon entreprise.

Je colle ensuite les données de l’extraction dans un autre fichier de suivi de production contenant des macros.

J’ai donc besoin de récupérer ces données une à deux fois par jours pour présenter les résultats.

Macro type dans ce cas :

    Dim aa
    aa = Workbooks("NomClasseurExtraction").Worksheets(1).Range("A1").CurrentRegion.Value
    ThisWorkbook.Worksheets("FeuilleCible").Range("A1").Resize(UBound(aa, 1), UBound(aa, 2)).Value = aa

Prendre la cellule supérieure gauche de la plage source si ce n'est pas A1.

Si la plage est fractionnée par des lignes ou colonnes entièrement vides, remplacer .Range("A1").CurrentRegion par .UsedRange.

Cordialement.

    Dim aa
    aa = Workbooks("NomClasseurExtraction").Worksheets(1).Range("A1").CurrentRegion.Value
    ThisWorkbook.Worksheets("FeuilleCible").Range("A1").Resize(UBound(aa, 1), UBound(aa, 2)).Value = aa

J'ai oublié de préciser que le fichier extrait n'a jamais le même nom, ça serait trop simple sinon.

C'est pour cela que je suis obligé de faire les copier-coller manuellement à chaque fois.

Re,

Il te suffit de le renommer, ou bien tu utilises ActiveWorkbook et lance la macro (qui se trouve dans ton classeur destinataire) en ayant le classeur à traiter actif.

    Dim aa
    aa = Workbooks("NomClasseurExtraction").Worksheets(1).Range("A1").CurrentRegion.Value
    ThisWorkbook.Worksheets("FeuilleCible").Range("A1").Resize(UBound(aa, 1), UBound(aa, 2)).Value = aa

J'ai oublié de préciser que le fichier extrait n'a jamais le même nom, ça serait trop simple sinon.

C'est pour cela que je suis obligé de faire les copier-coller manuellement à chaque fois.

Le nom n'est pas un problème, si le répertoire où il se trouve est connu c'est gérable en macro également.

En effet ça fonctionne correctement merci à vous.

Rechercher des sujets similaires à "lenteur copier coller entre deux fichiers"