Améliorer la vitesse de ma macro

Résolu/Fermé
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 - Modifié par pijaku le 16/07/2014 à 08:01
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 - 16 juil. 2014 à 09:47
Bonjour,
je souhaiterai augmenter la vitesse d'exécution de ma macro; je sais que la question a déjà été posé, mais cela ne pas aidé.
Je me souvient qu'il y avait une manière d'exécuter le code dans un autre fichier VBA, et qu'il y avait 3 ligne de code a mettre,
mais impossible de le retrouver
Merci de votre aide :)

cordialement, uly2562
A voir également:

5 réponses

ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 15/07/2014 à 17:17
Bonjour

Au lieu de travailler dans ta feuille avec des Range(..) ou des Cells( ...), il te faut 1. transférer ta plage à traiter dans un tableau par exemple
Dim TF
With Sheets(F)
TF = .Range(.Cells(lideb, codebF), .Cells(lifinF, cofinF))
End With

2. à la fin du traitement, tu revoies ton tableau dans ta plage
With Sheets(F)
.Cells(lideb, codebF).Resize(nbli, nbco) = TF
End With

Bon courage
1
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 1
Modifié par pijaku le 16/07/2014 à 08:04
Merci pour tes conseil ccm81,
Mais je ne travaille pas avec les Range() ou les Cell()
voyez plutôt: https://www.cjoint.com/c/DGqhJYmy8xR
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 juil. 2014 à 07:58
Tiens, c'est curieux, Ces macros me rappelent quelque chose.... pourtant, il n'est fait aucune mention de l'auteur style "à partir de...."

Au passage Merci pour les propriétaires de Chihuahua
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 16/07/2014 à 08:12
Bonjour tout le monde,

1- Merci de bien vouloir changer de signature,

2- Je crois également reconnaitre l'auteur de ces macros, une référence, au sujet de base, directement en tête du code, serait en effet la moindre des choses. Par exemple :
en entête de chacun de tes modules (1 et 2)
'sources :
'http://www.commentcamarche.net/forum/affich-30483726-affichage-de-donnees#p30483726


3- Pourquoi aller plus vite? Quel est le temps d'exécution de tes procédures?
Pour le savoir, ajoute ces deux lignes en début de macro :
Dim T As Single
T = Timer

et cette ligne en fin de macro, avant le End Sub :
MsgBox "Macro exécutée en : " & Timer - T & " secondes."


Cordialement,
Franck
0
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 1
16 juil. 2014 à 08:19
au plus rapide, la macro s'exécute en environ 8 seconde;
C'est surtout au niveau de l'affichage des données recherchées que ça prend du temps...
Peut être y aurai-t-il un moyen d'optimiser cet affichage, je n'en sais trop rien.. :/
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
16 juil. 2014 à 09:04
De ce que je vois dans ta macro, tu as la ligne
Application.ScreenUpdating = False
et la restitution se fait par
resize 
et
application.Transpose
.
Le code est donc, selon moi, optimal.
De plus, un traitement de plus de 10 000 lignes sur 10 colonnes, en 8 secondes avec Excel,= est déjà un très bon rendement...
Mes essais montrent par ailleurs un meilleur temps que 8 secondes. Certainement du à mon pc.

Bref.
Difficile de faire mieux, voire même impossible.

Par contre, j'ai un souci avec le code... Lors de mes essais, j'ai saisi, dans le textbox 195 par exemple.
Il ne trouve aucune données alors qu'il y en a...
La ligne
Nbre = Application.CountIf(.Range("localite"), Critere)
renvoit 0... Je ne me l'explique pas.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
16 juil. 2014 à 09:19
Bonjour a tous,

Le sujet de depart es celui-ci:
https://forums.commentcamarche.net/forum/affich-30483726-affichage-de-donnees#p30509107

ensuite uly2562 a choisi les M:
http://www.commentcamarche.net/forum/message-1537944-question

ce matin je lui ai mis son fichier a dispo avec modif du countif qui ne trouve pas tout et des filtres pour recherche trait 1 a & 4

pour le "plagiat" le debat est tout vert (ou rouge). Dans le fichier de Michel_M, je sais ou trouve son pseudo
0
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 1
16 juil. 2014 à 09:20
D'accord, merci pour ton analyse pijaku
oui, j'ai en effet fais cette découverte, je ne voulais pas l'évoquer, car cela ne faisais pas parti du topique,
c'est vrai que c'est assez étrange, et cela se produit sur d'autre références..
embêtant :/
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 702
16 juil. 2014 à 09:23
Bonjour uly2562,

lire le lien Lien (#14) et regardez le fichier que je vous ai mis en MP
0
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 1
16 juil. 2014 à 08:10
Oui, cela est normal que cela te rappelle quelque chose,
A la base, c'est un fichier destiné a la recherche de commune, et son fonctionnement est quasi identique a mon travail;
En espérant ne pas avoir commi un déli, en oubliant de mettre la mention "à partir de" :p
ah... Dsl pour la phrase, c'est la punshline d'une personne connue, et toute mes excuse si tu es propriétaire d'un chihuahua

--
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
16 juil. 2014 à 08:17
En espérant ne pas avoir commi un déli, en oubliant de mettre la mention "à partir de" :p

t'es injurieux, tu commets des plagiats et ça te fait rire ?
0

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

Posez votre question
uly2562 Messages postés 70 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 28 juillet 2014 1
16 juil. 2014 à 08:39
Restons calme, et a l'avenir, je tacherais de modérer mes propos, ainsi que mon attitude dans le but de garder une atmosphère saine et de préserver un altruisme constant, sans pour autant semer la zizanie.
0