Voici une partie d'un script vba fait avec excel 2003. Il copie les lignes d'une feuille vers d'autres feuilles selon un critère. Le nom contenu dans la colone A correspond à une feuille ex:A1=Zootman alors la ligne complète est copiée dans une feuille dont l'onglet s'appelle Zootman. Le problème c'est qu'il est très long à executer. Je l'ai fait avec une boucle imbriquée. Ca prend presque 2h pour copier 16 500 lignes. Quelqu'un aurait une suggestion pour que ce soit plus rapide? Merci.
dans mon cas précis: Sheets.Count = 112 feuilles et nbCell=16500
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 For i = 1 To Sheets.Count - 1 k = 1 For j = 1 To nbCell + 1 If Sheets(i).Name = Sheets("Zootman").Cells(j, 1).Value Then Worksheets("Zootman").Range("A" & j & ":" & "IV" & j).Copy Worksheets(i).Range("A" & k & ":" & "IV" & k).PasteSpecial k = k + 1 End If Next j Next i
[Edit] bbil : Penser à rajouter les balises de codes, utiliser le bouton
Partager