Bonjour ,

J'importe des données excel dans une spreadsheet et je trouve le temps de chargement extrement long.

Je n'ai meme pas pu attendre la fin. Le fichier de données fait 55 colonnes sur 30 000 lignes. Si je limite a 50 * 50 le temps est tres axeptable , avec 50*5 000 ca ralenti bcp mais ça va, par contre si je lui balance le fichier entier c'est du délire !

Voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
 
 
Sub CopieColle(ByVal cheminFichier As String)
'
' CopieColle Macro
' Ouvre le fichier de données et exporte les données sur notre spreadsheet (excel)
'
    Dim NomFichier As String
    Dim nbLig As Long, nbCol As Byte
 
    On Error GoTo restauration
    With Application
        .ReferenceStyle = xlR1C1 ' Affichage des feuilles en mode L1C1
        .DisplayAlerts = False
        .ScreenUpdating = False     ' Gèle l'écran pour accélérer le traitement
        .Interactive = False
    End With
 
    ' Ouvre le fichier de données
    Workbooks.Open FileName:=cheminFichier
 
    nbLig = 1
    Do Until IsEmpty(Cells(nbLig, 1))
        nbLig = nbLig + 1
    Loop
 
    nbCol = 1
    Do Until IsEmpty(Cells(1, nbCol))
        nbCol = nbCol + 1
    Loop
 
    Range(Cells(1, 1), Cells(nbLig - 1, nbCol - 1)).Select
    Selection.Copy
    spreadsheet.excel.Sheets("Données").Activate
    spreadsheet.excel.Cells(1, 1).Select
    spreadsheet.excel.ActiveSheet.Paste
    Application.CutCopyMode = False ' Vide le presse-papier
 
    NomFichier = Replace(Mid$(cheminFichier, InStrRev(cheminFichier, "\")), "\", "")
    Workbooks(NomFichier).Close SaveChanges:=False
 
    spreadsheet.Show
 
restauration:
    With Application
        .DisplayAlerts = True
        .ScreenUpdating = True   ' Désactive le gelage d'écran
        .Interactive = True
    End With
 
End Sub

Une idée ??

Pour info j'ai du télécharger OWC Spreadsheet 9 (fichier MSOWC.DLL ) et j'ai excel 2000.


Merci d'avance


edit : Je viens de me rendre compte à l'aide de spreadsheet.show que ma "feuille_excel" est bien remplie avant l'étape restauration et si je remet cette instruction apres elle est vide