cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
4 nov. 2006 à 15:49
ShareVB
Messages postés2676Date d'inscriptionvendredi 28 juin 2002StatutMembreDernière intervention13 janvier 2016
-
5 nov. 2006 à 11:06
Bonjour,
Je me suis déjà créé une application VB qui me permet de faire une
recherche de mots-clés dans le code de fichiers VB (.frm, .bas,
.cls,...) en fait toutes sortes de fichiers qu'on peut lire avec
Open Fichier for Input as #1
Il me permet donc de scruter tous les dossiers et sous-dossiers d'un
chemin donné et ça m'est souvent utile. C'est rapide et efficace.
J'aimerais pouvoir faire la même chose avec des fichiers xls
Mais comme les fichiers sont compilés, je ne vois pas d'autre
alternative que d'ouvrir une instance d'Excel (objet Excel) ... ce qui
risque de ralentir passablement l'application puisque j'ai plus de 1000
fichiers à lire...
Est-ce que quelqu'un verrait une autre façon d'y arriver ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 nov. 2006 à 17:12
Bonjour MPi,
hônnetement, je ne pense pas qu'il y ait d'autre façon que d'ouvrir réellement l'application Excel pour lecture.
J'ai tenté plusieur "bonjour" dans diffèrentes cellules, et ouvert avec wordpad, le résultat n'est pas fameux : un seul mot trouvé, donc impossible à lire comme ceci.
Cependant, je teste un truc...
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 nov. 2006 à 17:37
J'ai vérifié le temps d'éxecution sur une simple opération :
Private Sub Form_Load()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim sFileText As String
Dim x As Integer, y As Integer
Dim execproc, resultat
execproc = Timer
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = False: xlApp.ScreenUpdating = False
'Set xlBook = xlApp.Workbooks.Open("C:\Documents and
settings\Mortalino\Bureau\Nouveau.xls")
Set xlBook = xlApp.Workbooks.Open("C:\Documents and
settings\Mortalino\Bureau\Copie de Nouveau.csv")
For x = 1 To 20
For y = 1 To 500
sFileText = sFileText & Cells(y, x).Value
Next y
Next x
xlBook.Close True: xlApp.Quit
Set xlBook = Nothing: Set xlApp = Nothing
resultat = Timer - execproc: Debug.Print resultat
End Sub
--Mortalino--
Le premier test a été de vérifier le temps d'exécution pour cette petite opération entre les deux formats : xls et csv
Voici les résultats :
35.48438 .xls
34.10938 .csv
L'écart est minim, un peu moins d'une seconde et demi, mais il faudrait vérifier sur une plus grosse opération pour que ce soit révélateur.
A toi de voir.
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 4 nov. 2006 à 17:52
Merci Mortalino,
Bien que mon application ait pour but de lire le code des procédures, ça demeure quand même le procédé que je pensais utiliser, c'est-à-dire Excel.Application .
Mais avant de me lancer dans l'application (VB et/ou VBA) comme telle, j'aurais quand même bien aimé savoir s'il n'y a pas une autre méthode... Ou peut-être une façon de voir rapidement s'il y a ou non du code dans le fichier. Ça serait au moins ça de gagné question rapidité, s'il n'y a pas d'autres façons de faire.
MPi
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 4 nov. 2006 à 18:28
Ouhhhh que c'est vilain, une mesure de temps d'execution à l'aide de la fonction Timer. Bouhhhhh pas bien
Pour info Timer à une résolution de 18.2ms (pas top comme précision)
Pour les temps d'executions voir plutot de coté de l'api GetTickCount (1ms). Ou mieux sur les pc qui le permettent QueryPerformanceCounter (résolution dépendant de la machine, généralement on descent au moins à la µs)
---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 nov. 2006 à 18:34
Oui, effectivement, j'aurai pu mieux faire
De toute façon, mon code n'est pas vraiment ce que MPi recherche.
C'est le vbproject.Components. Malheureusement, MPi, je crains que tu n'aies pas le choix...
J'ai regarder sur le net, comme tu l'as dit, les vbproject (et ses composants) sont intégrés dans le fichier Excel, et donc aucun moyen de le lire, mis à part Excel, ou OO.o
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 4 nov. 2006 à 18:40
Mortalino: Open Office ?
Penses-tu que ça pourrait être mieux, voire plus rapide, que de passer par Excel.Application ?
Et est-ce que les PC doivent avoir Open Office installé ou un composant pourrait être suffisant ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 4 nov. 2006 à 18:50
La structure du fichier est complexe. Ce ne doit pas être évident, d'autant plus que tout est mélangé (feuilles, données cellules, composant userform, modules, etc)
Désolé MPi, je ne sais pas car je n'aime pas OO.o donc utilisé qu'une seule fois, et vite désinstaller, par contre, le fait que le code apparaissent dans des onglets, c'est peut-être
un peu plus rapide.
@++
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
avec tout ça tu peux avoir de bonnes performances :
-> soit tu codes tout en VB même la lecture des documents compound
-> soit tu codes avec les interfaces de lecture