Re: Optimisation de code VBA pour réduire le temps d'exécution |
Titre du sujet : Re: Optimisation de code VBA pour réduire le temps d'exécution par GGlyon le 29/03/2011 14:23:15 Merci beaucoup pour l'aide sur la publication du fichier. En ce qui concerne ce que je veux faire avec ces données : tout d'abord, les données sont toujours entrées dans le premier onglet sous la forme "date : (nom) infos". Si cette info est une action à réaliser, on ajoute une asterisque * à la fin pour qu'elle soit reconnu comme "active" A partir de là, je veux pouvoir annuler l'action s'il y a une erreur d'où les premières lignes de code qui copie toute la feuille sur une des feuilles cachées. Ensuite, si la modification de la première feuille concerne les colonnes 5 à 15, il suffit de copier ces mêmes colonnes dans le 2ème onglet. Cela correspond à la première boucle qui copie chaque première ligne de chaque dossier car il s'agit de 15 lignes fusionnées par dossier. J'ai mis en place 2 boucles : o = 5 to 15 et i = 2 to 452 (que je devrai d'ailleurs remplacer par i = 2 to Lig je pense). Ensuite, s la modification concerne la colonne 4, il faut gérer les lignes visibles et invisibles. C'est le seul moyen que j'ai trouvé pour ne pas avoir trop de lignes vides affichées et pour permettre l'ajout d'infos sur chaque dossier. La boucle principale (i = 2 to Lig où Lig est le nombre de lignes total variable en fonction de l'ajout de dossiers) permet de ne garder qu'une ligne vide par dossier. La boucle j = 2 to 100 me permet de faire la correspondance du nom de dossier entre les onglets 3 à 6 (une seule ligne par dossier) et le premier onglet (15 lignes par dossier). La boucle suivante k=0 to 14 permet de récupérer pour un dossier donné du premier onglet les infos de plus de 10j qui doivent allées dans l'onglet "Historique" Ensuite, les infos actives (donc avec *) datées de la date du jour ou antérieures sont copiées dans la feuille aujourd'hui dans la colonne de la personne devant réaliser l'action. Ensuite, toutes les infos actives sont copiées dans la feuille "Client" Ensuite, les textes sont mis en forme suivant un code que j'ai choisi (infos actives en rouge par exemple). La dernière boucle i=2 to Lig2 permet la même mise en forme uniquement sur les onglets 2 et 3. Il s'agit principalement d'éliminer les retour à la ligne (vblf) inutiles. J'espère que c'est assez clair, sinon n'hésitez pas à me poser des questions. Cordialement,GGlyon |
Forums