[Résolu] Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous,

D'après les exemples donnés sur le Forum, Scripting.Dictionary rend plus rapide le temps d'exécution. Dans le fichier joint, j'aimerais modifier la macro avec Scripting.Dictionary. Celui-ci contient une macro qui calcule le temps d'exécution. Mais il me semble un peu trop lent.

Une petite aide serait la bienvenue.
Par avance, merci.


A+ 😎
 

Pièces jointes

Dernière édition:
Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Bonjour Lone-wolf,

Les dictionnaires servent essentiellement à supprimer les doublons dans une liste de valeurs, je vois assez mal comment les intégrer à ta macro de copie de plage
D'autre part, on pourrait envisager de passer par des tableaux VBA mais dans ce cas on perdrait la mise en forme que tu conserves avec ta copie
 
Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Bonjour tototiti,

Merci d'avoir répondu.

Aaahh! D'accord. Donc, oublions le Dictionnaire.

Je viens de faire une modification dans le code qui avait une ligne à double. J'ai supprimer aussi "recep" qui causait un petit problème par [K:L].Clear

Code:
If TheTime(1) = 0 Then
Message = " " & Right("0" & TheTime(4), 2) & " centièmes de secondes" ' ligne à double
End If
[I3].Value = Message

If [rng2] = "" Then: [K:L].Clear: [I3] = ""

A+ 😎
 
Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Eh! Bonjour Philippe, 😀

Et bien, comme j'avais mal compris le concept de Scriptin.Dictionnary, je pensait que la procédure était un peu longue. Mais, si tu me dis que c'est rapide, alors je peux enlever le timer.


A+ 😎
 
Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Bonjour Philippe,
Re,

Sinon, si tu veux gagner un peu de temps, évite de mettre ta macro su Selection_Change (ça évitera qu'elle tourne plusieurs fois pour rien) et remplace tes crochets par des range

Par exemple, remplace

[I3].Value = Message

par

Range("I3").Value = Message

il parait que les crochets (Evaluate) sont plus lents
 
Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Bonjour,

...remplace tes crochets par des range
les crochets (Evaluate) sont plus lents

entièrement d'accord avec toi tototiti2012 😉 surtout quand on voit de ci de là tant d'utilisations abusives.
Autre remarque : ce n'est pas quelques ".Select" qui vont plomber le chrono !

Ci-joint une autre façon de copier vite, voire très vite* une plage même sans les "Application.truc "
* bien entendu dans ce contexte !
 

Pièces jointes

Re : Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Re tototiti, bonjour Forum

@tototiti: j'ai modifier les crochets Evaluate comme tu l'a dit, et c'est vrai que le temps est réduit, j'arrive à 42ct de secondes.

@Forum: je vais regarder le fichier, mais je sais par avance que je suis loin d'être à la hauteur.


A+ 😎
 
Re : [Résolu] Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Re,

Merci Fo_rum, j'ignorais que les recopies étaient beaucoup plus rapides que les Copier/coller 🙂
@Lone-Wolf : c'est juste une recopie, il copie ton tableau initial en K2, puis il recopie K2:L8 vers le bas, tu peux le faire manuellement, la poignée de recopie reproduit ton tableau
 
Re : [Résolu] Agmenter la vitesse d'exécution (Macro) avec Scripting.Dictionary

Re tototiti,

et bien, je ne crois être capable d'être plus rapide de la macro proposé par Fo_rum. 😱 😉

Copie de la ligne 2 à 30995 20 centièmes de secondes chrono.


A+ 😎
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
34
Affichages
2 K
Retour