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
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
A voir également:
- Améliorer la vitesse de ma macro
- Vitesse processeur - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Augmenter vitesse pc windows 10 - Guide
- Test vitesse ssd - Guide
- Macro word - Guide
5 réponses
ccm81
Messages postés
10905
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
27 décembre 2024
2 428
Modifié par ccm81 le 15/07/2014 à 17:17
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
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 juil. 2014 à 07:58
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
Au passage Merci pour les propriétaires de Chihuahua
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 16/07/2014 à 08:12
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)
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 :
et cette ligne en fin de macro, avant le End Sub :
Cordialement,
Franck
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
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
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.. :/
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.. :/
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
16 juil. 2014 à 09:04
16 juil. 2014 à 09:04
De ce que je vois dans ta macro, tu as la ligne
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
Application.ScreenUpdating = Falseet la restitution se fait par
resizeet
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.
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
16 juil. 2014 à 09:19
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
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
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
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 :/
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 :/
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
16 juil. 2014 à 09:23
16 juil. 2014 à 09:23
Bonjour uly2562,
lire le lien Lien (#14) et regardez le fichier que je vous ai mis en MP
lire le lien Lien (#14) et regardez le fichier que je vous ai mis en MP
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
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
--
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
--
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
16 juil. 2014 à 08:17
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 ?
t'es injurieux, tu commets des plagiats et ça te fait rire ?
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
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.
Modifié par pijaku le 16/07/2014 à 08:04
Mais je ne travaille pas avec les Range() ou les Cell()
voyez plutôt: https://www.cjoint.com/c/DGqhJYmy8xR