Code lent

Bonjour à tous,

Je rencontre un petit problème avec mon code VBA. Dans un classeur j’ai un bouton qui me permet d’ouvrir un autre classeur, filtrer des données, les sélectionner puis les copier / coller dans le 1er classeur.

Mon code fonction mais n’est pas propre, j’utilise des simple, activate / select / copy / paste et du coup l’exécution est un peu lente. Pour le moment je ne transfert pas beaucoup de données, mais au fil du temps, le classeur va s’étoffer et j’ai peur qu’il devienne très long lors de l’import.

Je ne trouve pas comment réaliser ce copier / coller sans passer par des select, ect. Quelqu’un à une solution ? merci

Le code ci-dessous n'est pas la code complet, seulement la partie copier / coller

indows(Data).Activate

For i = 1 To 100
With Feuil1
'copier / coller Colonne OA
    If Cells(1, i) = "OA" Then

        Range(Cells(1, i), Cells(derniereLigne, i)).Select
        Selection.Copy
        Windows(exploit).Activate
        Sheets("Extraction").Select
        Range("A1").Select
        Selection.PasteSpecial xlValues, xlNone, False, False

    End If

Bonjour,

1) Eliminer tout Select ou Activate ou équivalent...

2) Ne pas copier-coller mais affecter valeurs de la plage source à la plage cible.

Mais pour commencer, mets ton code en entier, s'il te plait, et n'oublie pas de mentionner les déclarations hors procédure s'il y en a.

Cordialement.

Bonjour MFerrand,

Aurais tu un petit exemple, avec les cellules A1 et B1 par exemple, pour affecter une valeur plutôt que de faire un copié/collé ?

En te remerciant.

Bonsoir,

[B1].Value = [A1].Value

(à qualifier par la feuille....)

Mais s'agissant de 2 cellules on peut se contenter de :

[B1] = [A1]

Merci beaucoup, voilà une manip que je ne connaissais pas, adieu les copié/collé !

Bonne soirée à tous

Rechercher des sujets similaires à "code lent"