Bonjour,
Je me tourne vers vous car j'ai un souci avec une macro. Le but de celle-ci est simplement d'afficher et masquer des lignes en fonction de la présence de données dans certaines cellules.
En elle-même, elle fonctionne très bien et, au début, elle fonctionnait rapidement (qq secondes), mais maintenant, elle met près de 3mn à tourner alors qu'elle est franchement basique. Je vous laisse en juger :
Je ne m'explique pas pourquoi elle est devenue si lente. Aucune modification n'a été apportée sur ce fichier. La seule modification de près ou de loin est que le répertoire dans lequel il se trouve a été sécurisé : Il n'est plus en accès public mais je suis désormais le seul autorisé (en sus des administrateurs) à pouvoir le visualiser et le modifier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Private Sub Workbook_Open() Dim i As Long i = 3 Do While i <= 89 ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).EntireRow.Hidden = False i = i + 1 Loop i = 3 Do While i <= 29 If ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).Value = "" Then ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).EntireRow.Hidden = True End If i = i + 1 Loop i = 33 Do While i <= 59 If ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).Value = "" Then ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).EntireRow.Hidden = True End If i = i + 1 Loop i = 63 Do While i <= 89 If ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).Value = "" Then ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).EntireRow.Hidden = True End If i = i + 1 Loop End Sub
A noter que la première instruction, sur laquelle il n'y a pas de condition :
met déjà plus d'une minute à touner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Do While i <= 89 ThisWorkbook.Sheets("ACTIVITE COMMERCIALE").Cells(i, 1).EntireRow.Hidden = False i = i + 1 Loop
Si quelqu'un a une idée...
Merci d'avance
Partager