Fichier Excel lent à cause d'une macro.
Résolu/Fermé
Steeve999
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018
-
Modifié le 21 août 2017 à 11:11
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 23 août 2017 à 12:13
eriiic Messages postés 24601 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 25 novembre 2024 - 23 août 2017 à 12:13
A voir également:
- Fichier Excel lent à cause d'une macro.
- Pc lent - Guide
- Fichier rar - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Fichier host - Guide
2 réponses
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
21 août 2017 à 11:17
21 août 2017 à 11:17
Bonjour,
Première chose pour gagner en rapidité ... désactiver l'affichage pendant la macro.
puis le réactiver à la fin
Ensuite... si ta macro doit se lancer uniquement si tu changes certaines cellules (ou plages de cellules de ta feuille), tu peux, au début de ta macro, tester où se situe le 'target'
Par exemple : On veut une action quand on Click sur la Cellule "A1" uniquement
Pour continuer à améliorer ton code...
Au lieu de faire de multiples
Voila.. déjà avec ça.. tu devrais gagner de temps....
Première chose pour gagner en rapidité ... désactiver l'affichage pendant la macro.
' A mettre au début de ta macro Application.ScreenUpdating = False
puis le réactiver à la fin
' A mettre à la fin de ta macro Application.ScreenUpdating = true
Ensuite... si ta macro doit se lancer uniquement si tu changes certaines cellules (ou plages de cellules de ta feuille), tu peux, au début de ta macro, tester où se situe le 'target'
Par exemple : On veut une action quand on Click sur la Cellule "A1" uniquement
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Application.Intersect(Target, Range("A1")) Is Nothing Then ' je suis en A1 MsgBox "Click on " & Target.Address End If End Sub
Pour continuer à améliorer ton code...
Au lieu de faire de multiples
If Range("E25").Value = ...oriente toi plutot vers un SELECT CASE
elect Case ValeurAVerifier Case "condition 1" 'Code si la "condition 1" est remplie Case "condition 2" 'Code si la "condition 2" est remplie Case "condition 3", "condition 4" 'Code si la "condition 3" ou la "condition 4" est remplie '... Case Else 'code si aucune condition est remplie End Select
Voila.. déjà avec ça.. tu devrais gagner de temps....
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 242
23 août 2017 à 01:27
23 août 2017 à 01:27
Bonjour,
pour être plus précis quel est l'intérêt de refaire par exemple
à chaque saisie n'importe où ?
Il n'est intéressant de le faire que si c'est E25 qui a changé.
Idem pour I32 et D6
eric
pour être plus précis quel est l'intérêt de refaire par exemple
If Range("E25").Value = 5 Then
Sheets("Fiche_opérateur").Range("a67:a77").EntireRow.Hidden = True
Sheets("Rapport").Range("a132:a142").EntireRow.Hidden = True
End If
à chaque saisie n'importe où ?
Il n'est intéressant de le faire que si c'est E25 qui a changé.
Idem pour I32 et D6
eric
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
23 août 2017 à 08:05
23 août 2017 à 08:05
Bonjour eriiic,
Steeve999 n'a pas repondu a la proposition faite par Jordane45, mais, a fait une autre demande
https://forums.commentcamarche.net/forum/affich-34809091-executer-une-macro-lorsque-la-valeur-d-une-cellule-change
Steeve999 n'a pas repondu a la proposition faite par Jordane45, mais, a fait une autre demande
https://forums.commentcamarche.net/forum/affich-34809091-executer-une-macro-lorsque-la-valeur-d-une-cellule-change
Steeve999
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018
23 août 2017 à 11:20
23 août 2017 à 11:20
Bonjour,
Pour E25 et d6 ils changent chaque fois de condition. Mais pour I32 t'as raison il y a des répétitions qui n'ont pas d’intérêt.
Pour E25 et d6 ils changent chaque fois de condition. Mais pour I32 t'as raison il y a des répétitions qui n'ont pas d’intérêt.
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 242
23 août 2017 à 11:43
23 août 2017 à 11:43
Pour E25 et d6 ils changent chaque fois de condition
mais tu ne te sers pas QUE de la cellule E25, je suppose que des fois tu saisis ailleurs...
Ces conditions ne sont à tester et à exécuter que si E25 change. Tu te plains de lenteur et tu fais des actions inutiles.
mais tu ne te sers pas QUE de la cellule E25, je suppose que des fois tu saisis ailleurs...
Ces conditions ne sont à tester et à exécuter que si E25 change. Tu te plains de lenteur et tu fais des actions inutiles.
Steeve999
Messages postés
16
Date d'inscription
lundi 17 juillet 2017
Statut
Membre
Dernière intervention
24 avril 2018
23 août 2017 à 11:51
23 août 2017 à 11:51
Oui voila c'est ça que j'ai demandé dans le deuxième post comme t'a dit f894009.
Je fais exécuter la macro que quand les cellules E25, D6 ou I32 changent.
et maintenant c'est bon le problème et résolu.
Merci beaucoup :)
Je fais exécuter la macro que quand les cellules E25, D6 ou I32 changent.
et maintenant c'est bon le problème et résolu.
Merci beaucoup :)
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 242
Modifié le 23 août 2017 à 12:13
Modifié le 23 août 2017 à 12:13
Evite les doublons la prochaine fois, reste sur le même fil.
Ca permet à chacun de suivre et d'éviter les redites inutiles.
eric
Ca permet à chacun de suivre et d'éviter les redites inutiles.
eric
23 août 2017 à 11:19