Lenteur d'exécution
Résolu
ngio1301
Messages postés
46
Date d'inscription
Statut
Membre
Dernière intervention
-
ngio1301 Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
ngio1301 Messages postés 46 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un petit souci avec un code qui est pourtant simple. Il est très lent. Il met entre 10 et 15 secondes pour s'exécuter. Y aurait-il une solution svp?
A savoir qu'il est activé par le change de la selection à partir d'une autre feuille.
EDIT : Ajout des balises de code
j'ai un petit souci avec un code qui est pourtant simple. Il est très lent. Il met entre 10 et 15 secondes pour s'exécuter. Y aurait-il une solution svp?
A savoir qu'il est activé par le change de la selection à partir d'une autre feuille.
Sub annuler_mvt() Dim i, c, j As Integer Application.ScreenUpdating = False For i = 3 To 9 If Sheets(i).Range("L2") = Date Then For c = 13 To 70 j = 4 Sheets(i).Unprotect Password:=Mdpass If Selection.Offset(, -10).Value = Sheets(i).Cells(c, j).Value And Selection.Offset(, -11).Value = Sheets(i).Cells(c, j).Offset(, -1).Value And ActiveSheet.Range("L1").Value = Sheets(i).Cells(c, j).Offset(, -2).Value Then Sheets(i).Cells(c, j).Interior.Color = RGB(218, 150, 148) Sheets(i).Cells(c, j).Offset(, -1).Interior.Color = RGB(218, 150, 148) Sheets(i).Cells(c, j).Offset(, -2).Interior.Color = RGB(218, 150, 148) Sheets(i).Cells(c, j).Offset(, -3) = "Annulé" Sheets(i).Cells(c, j).Offset(, -3).Interior.Color = RGB(218, 150, 148) End If Sheets(i).Protect Password:=Mdpass Next c End If Next i Application.ScreenUpdating = True End Sub
EDIT : Ajout des balises de code
Configuration: Windows / Chrome 83.0.4103.116
A voir également:
- Lenteur d'exécution
- Lenteur pc - Guide
- Le service spouleur d'impression local n'est pas en cours d'exécution - Guide
- Net user des erreurs ont affecté l'exécution de la commande - Forum Windows
- Au démarrage de l’ordinateur, le d' se lance. il permet l’exécution des logiciels applicatifs et gère l’utilisation des ressources matérielles (mémoire, processeur, périphériques). - Forum Alimentation PC
- Il permet l’exécution des logiciels applicatifs et gère l’utilisation des ressources matérielles (mémoire, processeur, périphériques). ✓ - Forum Windows 10
3 réponses
Bonjour,
Mets ce qui nécessite du temps de calcul et qui est indépendant de c, i et j en variable pour ne faire le calcul qu'une fois :
Je pense que le And est évalué systématiquement => essaie peut-être en imbriquant les If (même si c'est moche).
Je pense que Offset est plus lent que jouer sur la colonne :
Mais Range est peut-être encore mieux :
A+
Mets ce qui nécessite du temps de calcul et qui est indépendant de c, i et j en variable pour ne faire le calcul qu'une fois :
Selection.Offset(, -10).Value Selection.Offset(, -11).Value ActiveSheet.Range("L1").Value
Je pense que le And est évalué systématiquement => essaie peut-être en imbriquant les If (même si c'est moche).
Je pense que Offset est plus lent que jouer sur la colonne :
Sheets(i).Cells(c, j-2).Interior.Color
Mais Range est peut-être encore mieux :
Sheets(i).Range(Sheets(i).Cells(c, j-3),Sheets(i).Cells(c, j)).Interior.Color = RGB(218, 150, 148)
A+
Bonjour,
"selection" désigne quelle cellule ?
Pourquoi remontes tu les cellules (elles ont toutes la m^me couleur) et il me semble ( à vue de nez que la colonne 4 entre les lignes 10 à 67 auront la couleur demandée (gain de temps ?)
quand "c" s'incrémente (boucle) la cellule remontée de 3 va écrire annulé" donc à la fin tu auras 57 "annulé"
j'avoue que je ne comprends ce que cela a pu donner quand tu as fait tes essais
A te lire
"selection" désigne quelle cellule ?
Pourquoi remontes tu les cellules (elles ont toutes la m^me couleur) et il me semble ( à vue de nez que la colonne 4 entre les lignes 10 à 67 auront la couleur demandée (gain de temps ?)
quand "c" s'incrémente (boucle) la cellule remontée de 3 va écrire annulé" donc à la fin tu auras 57 "annulé"
j'avoue que je ne comprends ce que cela a pu donner quand tu as fait tes essais
A te lire
j'ai effectué toutes les modifs, le souci venait de la protection qui était dans la 2ème boucle. merci pour ton aide précieuse.