Accueil > Forum > > > > Comment accélérer un peu mon code
Comment accélérer un peu mon code
jeudi 23 mars 2006 à 15:38:54 |
Comment accélérer un peu mon code

Nyartaletotep
|
Bonjour à tous !
Je développe un applicatif sous Word qui génére automatiquement des fichiers .doc en composant le fichier à partir d'un fichier contenant l'ensemble des paragraphes. Le tout piloté par un formulaire. Bon jusque là rien d'extraordinaire. Le truc c'est que dans un soucis d'évolutivité, rien n'est programmé en dur dans le code. J'ai donc des tables de correspondances contenue dans des feuillets excel. Le soucis c'est qu'à chaque fois que je clique sur une option du formulaire, il parcours l'ensemble des feuillets à la recherche d'un certain nombre d'infos. Mais c'est trop lent. (pourtant on a de bons PC PIV 2.6Ghz 512 Mo). Donc mon idée c'est de charger mon feuillet au démarrage dans un Array VBA... mais je me pose la question si VBA ira plus vite à chercher dans un Array que dans un objet xlRange.
Voilà si vous pouvez m'aider, je suis prenneur de toute idée :)
Merci
|
|
jeudi 23 mars 2006 à 15:42:31 |
Re : Comment accélérer un peu mon code
|
jeudi 23 mars 2006 à 15:46:50 |
Re : Comment accélérer un peu mon code

Diegoch
|
non, vb ne sera pas plus rapide à la recherche. Mais peut etre ta methode de recherche n'est-elle pas adaptée ?
|
|
jeudi 23 mars 2006 à 16:00:22 |
Re : Comment accélérer un peu mon code

Nyartaletotep
|
bin j'ai pas trop le choix, en fait c'est une tableau de taux. C'est un tableau de 9 colones et 120 lignes. Les 8 premiers servent à composés le nom du taux que je cherche dans la 9ième.
En gros, quand je clique sur une option, ça balaye ligne par ligne:
Tant que ligne <> ""
Si cell(ligne,1) & cell(ligne,2) & ... & cell(ligne,8) = "chainecontenantlenomdutaux" alors
TauxTrouvé= cell(ligne,9)
Fin test
Fin boucle
C'est lourd mais ça permet à ceux qui vont utiliser l'applicatif de rajouter des taux sans modifier le code.
Si vous avez une idée...
|
|
jeudi 23 mars 2006 à 18:55:20 |
Re : Comment accélérer un peu mon code

us_30
|
Bonjour,
Assurément, mettre tes données en mémoire (grâce à DIM, donc une ARRAY selon le vocabulaire) sera plus rapide.
De plus, tu augmentera encore la vitesse d'éxecution en déclarant le typee des variables. Autant pour les tableaux qui contiendra tes données, mais aussi dans l'ensemble de ton code. L'instruction "OPTION EXPLICIT" en début du code t'indiquera chaque variable non dééclarée... restera encore à déterminer les types le plus appropriées.
Amicalement,
Us.
|
|
jeudi 23 mars 2006 à 20:10:44 |
Re : Comment accélérer un peu mon code

Nyartaletotep
|
Je déclare toujours les variables, ça pas de soucis.
Donc il faudrait que je récupère les données de mon feuillet dans un Array VBA.
Est ce qu'on peut avoir un Array à 2 dimensions (une matrice quoi) ?
Parce que je connais ça:
tab = Array(valA, valeur2, ..., valN)
Mais peut on faire:
tab Array(Array_A(valA, valB),Array_B(valC, valD)) ?
|
|
vendredi 24 mars 2006 à 08:04:07 |
Re : Comment accélérer un peu mon code
|
vendredi 24 mars 2006 à 13:37:31 |
Re : Comment accélérer un peu mon code

us_30
|
Bonjour,
Voilà comme dit NHenry... Mais il existe (comme souvent) plusieurs syntaxes possibles pour utiliser DIM. Si tu sais que ton Tableau est de longueur fixe, on peut le déclarer directement avec : " DIM TAB(8,120) As String " (c'est un exemple)
JE rebondis ensuite sur ta seconde intervention où tu dis que les 8 premières colonnes contienne le nom du taux... IL faudrait voir si il ne serait pas possible de tout mettre dans une seule colonne. Car la syntaxe de l'algo, que tu écris avec :
Tant que ligne <> ""
Si cell(ligne,1) & cell(ligne,2) & ... & cell(ligne,8) = "chainecontenantlenomdutaux" alors
TauxTrouvé= cell(ligne,9)
Fin test
Fin boucle
n'est pas très bonne en terme de rapidité... En effet, "concaténner" autant variables pour reconstituer un seul nom (d'après ce que je comprends) est forcément très lent... et j'ose même dire, pas très propre. En général, on évite ce genre de structure à rallonge. Mais, il faudrait en connaître plus, pour developper davantage ce point.
Amicalement,
Us.
|
|
vendredi 24 mars 2006 à 14:03:39 |
Re : Comment accélérer un peu mon code

Nyartaletotep
|
Bonjour, (et merci de ces réponses :)
Je sais bien que ce genre de structure est plutot lourd. En effet, en utilisant une seule colone et un vLookUp ça va beaucoup plus vite. Mais question utilisation c'est pas très pratique en fait... je parle utilisation par ceux qui vont devoir se servir de mon applicatif. Mais c'est vrai que je vais peut etre devoir changer de méthode car même si ça n'est pas extremement lent, ça rends le formulaire pénible à utiliser...
|
|
vendredi 24 mars 2006 à 16:20:11 |
Re : Comment accélérer un peu mon code

Nyartaletotep
|
Bon ben j'ai trouvé un solution bidouille mais qui marche pas mal finalement. J'ai ajouter une colone dans mon feuillet avec une formule A2 & B2 & C2 & ... & I2 et je fais un vLookUp sur cette colone. C'est bete mais ça marche mieux. Et ça laisse de la souplesse d'utilisation pour les utilisateurs (parce qu'en fait j'ai des filtres sur les colones donc avec une seule colone ça marche plus bien sur)
Merci en tout cas !
|
|
Cette discussion est classée dans : fichier, code, formulaire, accélérer, ensemble
Répondre à ce message
Sujets en rapport avec ce message
pause du code tant qu'un formulaire est ouvert [ par akiuni ]
Salut,je suis confronté a un problème sous Access:J'ai un formulaire de départ qui ouvre un fichier, le parse et stocke les infos dans une table. S'il
Code pour explorer fichier le suns àla suite des autres [ par loops02 ]
Bonjour à tous, je voudrais développé un petit script mais je ne sais pas du tout par quoi commencer. Plusieurs fichiers sont stockés dans un reperto
Récupération automatique de formulaire vers un fichier texte [ par coulincourt ]
Bonjour, je veux créer un questionnaire formulaire html dont les réponses seraient automatiquement transférées vers un fichier texte ou autre que l'o
Convertir une valeur en code ASCII [ par tchouck ]
bonjour, je voudrais decoder un fichier et pour cela j'ai besoin reconvertir la valeur des caractères en leurs valeurs ASCII .Ex A=65 (ça je sais fair
Récupération d'un formulaire dans un fichier txt [ par mazik ]
Bonjour, bonjour à tous, Je débute en PHP depuis une semaine environ et je bute sur un problème qui pour moi est épineux et pour vous sans doute l'en
Récupération d'un formulaire dans un fichier txt [ par mazik ]
Bonjour, bonjour à tous, Je débute en PHP depuis une semaine environ et je bute sur un problème qui pour moi est épineux et pour vous sans doute l'en
code [ par jpsonza ]
Salut,J'ai écrit un code dans un fichier excel, est-il possible de l'appliquer à d'autres fichier sans ouvrir celui qui contient le code initial?Merci
Formulaire html + php [ par jcheseaux ]
Bonjour ! Voila mon problème, j'ai créer un formulaire HTML gérant l'upload de fichier. Le problème, c'est que lors de l'envoie des variables depuis m
Formulaire html + php [ par jcheseaux ]
Bonjour ! Voila mon problème, j'ai créer un formulaire HTML gérant l'upload de fichier. Le problème, c'est que lors de l'envoie des variables depuis m
Formulaire html + php [ par jcheseaux ]
Bonjour ! Voila mon problème, j'ai créer un formulaire HTML gérant l'upload de fichier. Le problème, c'est que lors de l'envoie des variables depuis m
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
ACCES ODBCACCES ODBC par yannickcottin
Cliquez pour lire la suite par yannickcottin
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|