Vitesse

ossama261988 Messages postés 33 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 24 février 2012 - 16 févr. 2012 à 11:39
ossama261988 Messages postés 33 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 24 février 2012 - 16 févr. 2012 à 21:22
Bonjour,

Je viens de créer un programme tout simple mais l’exécution de celui là est très lent pouvez vous me donner une manipulation pour accélérer le l'exécution.

Je vous remercie d'avance.

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 févr. 2012 à 11:43
Bonjour,
Essaye de lui accrocher une fusée.

Tu plaisantes ?
Il faudrait analyser la totalité de ton code pour :

1) y rechercher les sources éventuelles de lenteurs et lourdeurs ?
2) le corriger ?

EZt ce ne serait pas une "manipulation", mais une reconstruction totale !
Heu ...


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 févr. 2012 à 11:54
ne lis pas ton fichier ligne a ligne, c'est trop lent de faire ainsi

ajoutes des DoEvents

euh...

montre nous du code, que diantre !


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
ossama261988 Messages postés 33 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 24 février 2012
16 févr. 2012 à 13:59
Voilà le code

Imports Microsoft
Public Class Form1


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
OpenFileDialog1.ShowDialog()
OpenFileDialog1.Multiselect = True
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim file As String
For each file in filenames
Dim appexcel As Microsoft.Office.Interop.Excel.Application
Dim wbexcel As Microsoft.Office.Interop.Excel.Workbook
Dim osheet As Microsoft.Office.Interop.Excel.Worksheet
appexcel = CreateObject("excel.application")
appexcel.Visible = False
wbexcel = appexcel.Workbooks.Open(Text)
osheet = wbexcel.Worksheets.Item(1)
osheet.Cells(1, 22) = Date.Today
wbexcel.Save()
appexcel.Application.Workbooks.Close()
Next
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
End
End Sub

End Class
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 févr. 2012 à 14:53
Bonjour,
déjà :
avec ton code
- tu crées inutilement autant d'objets appexcel et wbexcel (je ne comprends d'ailleurs pas pourquoi deux de chaque) que tu as sélectionné de fichiers.
et sans, de plus, les zigouiller par un appexcel = nothing entre chaque


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ossama261988 Messages postés 33 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 24 février 2012
16 févr. 2012 à 15:04
Étant novice dans ce domaine, pourriez vous être plus explicatif s'il vous plait ?
Merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
16 févr. 2012 à 18:20
change ton

set appexcel = CreateObject("excel.application")

en

On local error resume next
Set appexcel = GetObject(, "Excel.Application")
On local error goto 0
if Nothing is appexcel then
    set appexcel = CreateObject("excel.application") 
endif


permettra de t'accrocher a l'instance d'excel lancée, s'il y en a une
(plus rapide)

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 févr. 2012 à 18:43
Et en mettant cela avant la boucle, qui ne devrait à mon sens commencer qu'à partir de :

wbexcel = appexcel.Workbooks.Open(Text)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ossama261988 Messages postés 33 Date d'inscription mardi 5 avril 2011 Statut Membre Dernière intervention 24 février 2012
16 févr. 2012 à 21:22
Merci de vos réponses
0

Discussions similaires

la balise avec pause ?
jeanmorelle -
leris -

1 réponse
Rejoignez-nous