[VBA] [RÉSOLU] Possibilité d'accélérer copie de lignes?

skye.in.sky

XLDnaute Nouveau
Bonjour tout le monde!
Suite à mon sujet résolu (cf. https://www.excel-downloads.com/threads/resolu-code-ne-fonctionne-pas-avec-fichier-partage.209238/)

J'essaye d’accélérer mon code de copie de lignes non vide de plusieurs feuilles et de les copier dans la feuille "Consolidation"

Code:
     t = Timer()
   For Each ws In Worksheets
      If ws.Name <> "Consolidation" And ws.Name <> "Graphs" Or ws.Name <> "listes" And _
      ws.Name <> "DroitsUsers" And ws.Name <> "Vierge" Then
         For i = 3 To ws.Range("A65000").End(xlUp).Row
             If ws.Cells(i, 13) <> "" Then ws.Rows(i).Copy Destination:=Sheets("Consolidation").Range("A65000").End(xlUp).Offset(1, 0)
         Next i
      End If
   Next ws
  
      MsgBox Timer() - t

Mon timer affiche au dessus de 65sec. Serait ce à cause des feuilles exceptions qu'Excel rallonge ?
Je mettais près d'1 sec avec 6/7 feuilles j'en ai aujourd'hui 13.

Si quelqu'un à une idée, je suis prenante.

Merci d'avance,
Jennifer
 
Dernière édition:

tashiqi

XLDnaute Occasionnel
Re : [VBA] Possibilité d'accélérer copie de lignes?

Re, bonsoir Robert:)

Sous 2010, peut même pas accéder au projet vba de ton fichier.... est vérouillé.... ton bouton consolider me plante excel.... pas top non plus les fichiers protégés par mot de passe sur le forum....
Il y a d'abord le verrou par macro : elle a donné le mot de passe.
Ensuite, pour accéder aux macros, il faut retirer le partage du fichier (Révision>Partager le classeur>décocher)
Après ça, moi j'ai pas de problème pour ouvrir
Ensuite, le bouton consolidation, c'est juste lent ...
 

tashiqi

XLDnaute Occasionnel
Re : [VBA] Possibilité d'accélérer copie de lignes?

C'est donc bien le Application.Calculation = xlCalculationManual qui change tout ?
Soit dit en passant, peut-être remplacer
Code:
  Worksheets("Consolidation").Range("A4:A65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
par
Code:
on error resume next
  Worksheets("Consolidation").Range("A4:A65000").SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete
on error goto 0
Pour éviter que ça plante quand consolidation est vide.

Suis-je le seul chez qui le bouton show everything n'est pas lié à la macro go ?
 

Discussions similaires

Réponses
7
Affichages
327
Réponses
7
Affichages
350

Membres actuellement en ligne

Statistiques des forums

Discussions
312 215
Messages
2 086 330
Membres
103 187
dernier inscrit
ebenhamel