[VBA Excel 2003] - Lenteur

Résolu
Warworm Messages postés 4 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 22 novembre 2006 - 15 nov. 2006 à 13:33
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 23 nov. 2006 à 03:06
Bonjour,


J'ai developpé une legère application de base de données sur Excel (je
sais, c'est très mal, mais on ne m'a pas laissé le choix). Ce fichier
est hebergé sur un serveur et fait appel à deux autres fichiers su meme
repertoire (le chemin via IP est defini dans le fichier). Il consiste
au chargement d'un formulaire à remplir qui permet l'ajout d'une ligne
dans une table et le remplissage automatique d'une feuille de calcul
basé sur un modèle.

Il a été developpé sur Office 2000

Ce programme, peu rapide, est d'une incroyable lenteur sur Excel
2003, avez vous un semblant d'explication, voire dans le meilleur des
cas de solution?


Je vous remercie par avance de toute reponse que vous pouvez m'apporter.


__________________________________
Si la pierre tombe sur l'oeuf, malheur à l'oeuf.
Si l'oeuf tombe sur la pierre, malheur à l'oeuf...

7 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 nov. 2006 à 00:05
Salut,

pourquoi ne pas refaire le fichier au format Excel 2003 afin de voir s'il est toujours aussi lent ?
Sinon, pour l'affichage dont te parlait jmjmarques, il faut faire, au début d'une procédure : Application.ScreenUpDating = False , puis le remettre à True à la fin de ta procédure.

@++

<hr size ="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
3
Warworm Messages postés 4 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 22 novembre 2006
15 nov. 2006 à 13:48
Petit edit : le point de lenteur semble se situer au niveau d'un ".execute" sur un filesearch pour lister un repertoire.

Si la pierre tombe sur l'oeuf, malheur à l'oeuf.
Si l'oeuf tombe sur la pierre, malheur à l'oeuf...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 nov. 2006 à 15:49
De mémoire (je ne pratique plus VB depuis des années...)
Essaye d'inhiber l'affichage pendant la durée des calculs entraînés sur ta feuille et rétablis l'affichage à la fin des calculs. Celà te fera gagner en temps d'exécution, déjà...(la mise à jour de l'affichage est gourmande !)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 nov. 2006 à 15:50
Correction : c'est VBA que je ne pratique plus depuis longtemps, pas VB ...
0

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

Posez votre question
Warworm Messages postés 4 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 22 novembre 2006
22 nov. 2006 à 11:09
Bon, en fait je l'ai refait au format Excel 2003, et j'ai bel et bien
realisé que le .execute du filesystem object devenait en reseau d'un
lenteur incoryable.


Je ne sais toujours pas pourquoi, mais vu qu'il s'agissait de mettre
des fichiers via combobox a la disposition des utilisateurs, j'ai fais
une boite de dialogue.


Un jour j'arriverai à convaincre mon entreprise que la vraie base de données est la solution. Un jour...


Merci pour vos reponses ^^

Si la pierre tombe sur l'oeuf, malheur à l'oeuf.
Si l'oeuf tombe sur la pierre, malheur à l'oeuf...
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
22 nov. 2006 à 20:26
Mais pourquoi ne passes-tu pas par un CommonControl ?
(contrôle à rajouter : Microsoft Common Dialog Control N° version)

En cas, teste si ça correspond à tes besoins, ouvre un nouveau classeur vierge, insère un UserForm, rajoute dans les contrôles par défaut le CommonControl puis place le sur le UserForm :

Private Sub UserForm_Initialize()
    With CommonDialog1
        .InitDir =  "C:\Documents and settings"
        .Filter = "Base de données| *.mdb; *.xls; *.txt"
        .ShowOpen
    End With

MsgBox CommonDialog1.Filename

End Sub

~<small> Mortalino </small>~

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 nov. 2006 à 03:06
WarWorm:
« Un jour j'arriverai à convaincre mon entreprise que la vraie base de données est la solution. Un jour...»

HAHAHA !!!
Il faudrait que je fasse lire ça à mes patrons... ¦¬)
Peut-être que ça finirait par les convaincre...
Si tu voyais les outils qu'on a au bureau... héhéhé
J'en ri même si ce n'est pas drôle... hihihi
Ça doit être nerveux... t'a touché ma corde sensible...

MPi
0
Rejoignez-nous