Fichier Excel lent à cause d'une macro.
Résolu
Steeve999
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
A voir également:
- Fichier Excel lent à cause d'une macro.
- Pc lent - Guide
- Fichier bin - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fichier epub - Guide
- Fichier rar - Guide
2 réponses
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....
Steeve999
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
Merci ça bien marché
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
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