bonjour,
Dans la partie 3 supprimer les set redondants (je crois)
objexcel.ActiveWorkbook.ActiveSheet.Cells("1" ).Select
Set wsExcel = wbExcel.Worksheets(1)
Set sheet = objexcel.ActiveWorkbook.ActiveSheet
mettre à la place :
i = wsExcel.Cells(65535, 1).End(xlUp).Row
remplacet la boucle while par :
For k = 1 to i
...
.text = wsExcel.Cells(k,1)
...
.text = wsExcel.Cells(k,1)
...
Next
... l'important étant de virer tous les offset aussi consommateurs de temps que des select !
...Et croiser les doigts !
Sinon l'idéal serait de stocker le Range(Cells(1,1),Cells(i,1)) dans un Array et refermer le classeur : L'accès à un Array est au moins 100 x plus rapide que l'accès au Range.
Dim Tablo()
...
i = wsExcel.Cells(65535, 1).End(xlUp).Row
Tablo = Range(Cells(1,1),Cells(i,1))
For k = 1 to i
...
.text = Tablo(k,1)
...
.text = Tablo(k,1)
...
Next
...Et croiser les doigts encore plus fort !
(je ne suis pas arrivé à faire fonctionner cette macro !
A+
Message édité par galopin01 le 28-08-2006 à 14:29:04