djam21
Messages postés11Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 5 juin 2007
-
31 mai 2007 à 14:00
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 2016
-
31 mai 2007 à 16:55
Hello!
J'expose mon problème. Je fais une application en ce moment. Au lancement de celle-ci, je vais lire des fichiers excel pour en récupérer des infos. En phase de test, je n'utilise que 3 fichiers, et le temps d'execution s'approche des 10s. En pratique, elle devrait avoir à gérer une 30aine de fichiers à chaque lancement. Si je compte bien, cà fait 100s... Trop long pour moi, et pour les utilisateurs...
J'ai trouvé que ce pb de temps était dû au temps d'ouverture d'un fichier:
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 31 mai 2007 à 14:13
1ère question : quelle est la taille des fichiers que tu ouvres ?
2ème question : quelles instructions exécutent-ils à l'ouverture ? Des calculs ?
Réponds déjà à celà, ce sera bien...
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 31 mai 2007 à 14:15
salut,
la boutade n'est pas si mauvaise....
charger excel (appli vide) masqué au chargement de l'appli, et y charger ton classeur quand besoin (rendre l'appli visible ^^)
c'est pas le document qui est long mais bien excel donc...
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Vous n’avez pas trouvé la réponse que vous recherchez ?
djam21
Messages postés11Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 5 juin 2007 31 mai 2007 à 14:29
Quelle réactivité!!!! Je suis impressionné! ;-)
Je suis sous VB6.
Les fichiers font environ 200ko!
En fait, c'est un format type, qui est rempli par d'autres personnes. Elles me les renvoient par mail, je les stocke. Et l'appli vient en faire le traitement. Elle récupère des valeurs dans des cases prédeterminées.
DocExcel.Application.Quit
Set DocExcel = Nothing
End Sub
Le Sub secondaire:
Public Sub ControleXLS(nomXLS As String)
Dim NouveaunomXLS As String
Dim incomplet, mauvais, incoherent As Boolean
Dim raison As String
Dim Somme, i As Integer
' Ouverture du fichier
DocExcel.Workbooks.Open FileName:=nomXLS, Editable:=False ' temps de démarrage >> 0
CodeSupplier = DocExcel.Range("F6").Text
If InStr(CodeSupplier, "-") Then
CodeSupplier = Replace(CodeSupplier, "-", "")
End If
If Len(CodeSupplier) <> 5 Then
incomplet = True
raison = "code supplier"
End If
CodePart = DocExcel.Range("F8").Text
If InStr(CodePart, "-") Then
CodePart = Replace(CodePart, "-", "")
End If
If (Len(CodePart) < 10) Or (Len(CodePart) > 11) Then
incomplet = True
If raison = "" Then
raison = "part code"
Else
raison = raison & "-part code"
End If
End If
DatePER = DocExcel.Range("F16").Text
If Not (DatePER Like "##-####") Then
incomplet = True
If raison = "" Then
raison = "date"
Else
raison = raison & "-date"
End If
End If
StatusPER = DocExcel.Range("N5").Text
If StatusPER = "X" Then
mauvais = True
End If
For i = 1 To 7
Select Case i Case i 1: Rapport(i, indiceRapport) CodeSupplier Case i 2: Rapport(i, indiceRapport) CodePart Case i 3: Rapport(i, indiceRapport) DatePER
Case i = 4:
If (incomplet = True) Then
Rapport(i, indiceRapport) = raison
Else: Rapport(i, indiceRapport) = "O"
End If
Case i = 5:
If (mauvais = True) Then
Rapport(i, indiceRapport) = "X"
Else: Rapport(i, indiceRapport) = "O"
End If
Case i = 6:
If (incoherent = True) Then
Rapport(i, indiceRapport) = "X"
Else: Rapport(i, indiceRapport) = "O"
End If
End Select
Next
djam21
Messages postés11Date d'inscriptionsamedi 19 novembre 2005StatutMembreDernière intervention 5 juin 2007 31 mai 2007 à 16:43
Ca m'irait parfaitement. Mais si je fais juste un "renommage", ca marchera pas!!!
Sans l'ouvrir??? Et donc les inconvénients en terme de temps??? Racontes!!! ;-)
En utilisant "DocExcel.ActiveWorkbook.SaveAs", il y a un paramètre qui s'appelle FileFormat. Là, il est égale à 17.
Tu sais où je pourrais avoir les autres codes et leurs significations?
Ca ne résoud en rien le problème (ouverture nécessaire), mais c'est juste pour info.