Comment réduire le temps d'exéctuion de mon code VBA
Fermé
Jasmine
-
1 juil. 2014 à 11:17
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 1 juil. 2014 à 14:48
skk201 Messages postés 938 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 16 octobre 2016 - 1 juil. 2014 à 14:48
A voir également:
- Réduire le temps d'exécution d'une macro vba
- Comment réduire la taille d'un fichier - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Blocage agriculteur carte en temps réel - Accueil - Transports & Cartes
- Comment reduire la taille d'une photo - Guide
- Macro word - Guide
4 réponses
nexus1991t
Messages postés
31
Date d'inscription
vendredi 29 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2018
21
1 juil. 2014 à 11:20
1 juil. 2014 à 11:20
Tu utilises ce code dans Excel ?
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
1 juil. 2014 à 11:24
1 juil. 2014 à 11:24
Bonjour
Essaye d'utilisé les conseil de ce site.
http://www.info-3000.com/vbvba/conseiloptimisation.php
Je pense notamment à la désactivation du calcule automatique.
Essaye d'utilisé les conseil de ce site.
http://www.info-3000.com/vbvba/conseiloptimisation.php
Je pense notamment à la désactivation du calcule automatique.
nexus1991t
Messages postés
31
Date d'inscription
vendredi 29 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2018
21
1 juil. 2014 à 11:32
1 juil. 2014 à 11:32
L'idéal c'est de cacher ta feuille avant le traitement puis de la ré afficher à la fin, car il y a toute une partie graphique qui alourdi, comme le déplacement de cellule en cellule. Ainsi tu n'affiche ta fenêtre qu'à la fin du traitement et suivant celui ci c'est presque immédiat.
bonjour
si on a beaucoup de foction & de vba un peux partout
Ex: macro
Sub test()
With Application
.ScreenUpdating = False
.Calculation = xlManual
.EnableEvents = False
End With
' - Code
'
'
'
' Fin
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
A+
Maurice
si on a beaucoup de foction & de vba un peux partout
Ex: macro
Sub test()
With Application
.ScreenUpdating = False
.Calculation = xlManual
.EnableEvents = False
End With
' - Code
'
'
'
' Fin
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub
A+
Maurice
skk201
Messages postés
938
Date d'inscription
jeudi 11 septembre 2008
Statut
Membre
Dernière intervention
16 octobre 2016
54
Modifié par skk201 le 1/07/2014 à 14:48
Modifié par skk201 le 1/07/2014 à 14:48
Attention avec
Car imagine que tu utilises les données d'une cellule pour savoir le nombre de ligne complète de ta feuille et que cette cellule utilise une formule
Si ta macro consiste à ajouter des nouvelles lignes et que tu prend toujours le NBVAL comme référence pour le nombre de ligne dans la liste, alors tu écriras toujours dans la même ligne.
(Un peu complex pour rien dire, en gros faut quand même faire attention et pas hésiter a mettre un
.Calculation = xlManual!
Car imagine que tu utilises les données d'une cellule pour savoir le nombre de ligne complète de ta feuille et que cette cellule utilise une formule
=NBVAL(A:A)par exemple alors la formule ne se mettra pas à jour.
Si ta macro consiste à ajouter des nouvelles lignes et que tu prend toujours le NBVAL comme référence pour le nombre de ligne dans la liste, alors tu écriras toujours dans la même ligne.
(Un peu complex pour rien dire, en gros faut quand même faire attention et pas hésiter a mettre un
ActiveSheet.Calculateavant de prendre une valeur dans un cellule, afin d'éviter les problèmes)