begin process at 2012 02 16 01:44:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

Comment accélérer un peu mon code


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

Pour sur.
Car xlRange, recherche déjà dans un tableau.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
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

Membre Club
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

NHenry

Membre Club Administrateur CodeS-SourceS
Bonjour

Tu peux faire :
Dim tab as type() 'Remplace type par ton type

Redim tab(Size1Min to Size1Max, Size2Min To Size2Max)

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
vendredi 24 mars 2006 à 13:37:31 | Re : Comment accélérer un peu mon code

us_30

Membre Club
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


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales