Bonjour,

Etant amateur dans l'utilisation et la création de macro VBA, je me tourne vers vous, ô experts chevronnés dans la programmation pour m'aider à résoudre un petit problème.
En fait, je cherche à masquer toutes les lignes vides d'un tableau contenant 2000 lignes, de manière à ce que la ligne de calcul en bas de ce dis tableau apparaisse directemment à la suite de celui-ci...Pour cela, j'ai réalisé la macro suivante :

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
Sub masquer_XXX()
 
Application.ScreenUpdating = False
 
Dim i As Long
 
Set p = Sheets("Données XXX").Range("donneesXXX") (j'ai donné des noms à mes plages pour me simplifier la tache)
Set m = Sheets("Données XXX").Range("nomXXX") (j'ai donné des noms à mes plages pour me simplifier la tache)
 
i = 1
 
For i = 1 To m.Rows.Count
 
    If m.Cells(i, 1) = "" Then
 
    p.Rows(i).Hidden = True
 
    End If
 
Next i
 
Application.ScreenUpdating = True
 
End Sub
Celle-ci fonctionne parfaitement, au soucis près que cela peut durer plusieurs minutes!!
Ceci étant dit, n'est-il pas possible, vu que je connais exactemment la dernière ligne de mon tableau (ce sera toujours la ligne 2000), de sélectionner la première ligne vide jusqu'à la ligne 2000 de manière à réduire le temps de traitement?
En gros quelque chose de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
For i = 1 To m.Rows.Count
 
    If m.Cells(i, 1) = "" Then
 
    Rows("i;2000").select
    Selection.EntireRow.Hidden = True
Mais en faisant que cela marche

Merci de votre aide...

Ps : il est possible que tout ceci ne soit pas très clair, je suis à disposition pour me réexpliquer...hihi ^^
Encore merci.