Bonjour à tous,

J'utilise un code pour décaler mes cellules vides sur chaque ligne de ma feuille.
Le problème c'est que l'exécution est très longue car j'ai environ 6000 lignes.

J'aurais besoin d'aide pour rendre la démarche plus rapide

je vous soumets le code :

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
30
31
32
33
For i = 2 To lig
 
                'si ast1(col7) vide, décale les autres (répete 3x  si juste ast4(col10) remplie)
                hit = 1
                Do
                    If Cells(i, 7).Value = "" Then
                        'décalage des 2 premières
                        Range(Cells(i, 8), Cells(i, 9)).Cut
                        ActiveSheet.Paste Destination:=Range(Cells(i, 8), Cells(i, 9)).Offset(0, -1)
                        'décalage de la dernière
                        Cells(i, 10).Cut
                        ActiveSheet.Paste Destination:=Cells(i, 10).Offset(0, -1)
                        hit = hit + 1
                    End If
                Loop While hit < 4
 
                'si ast2(col8) tjr vide, décale les suivantes (répète 2x)
                hit = 1
                Do
                    If Cells(i, 8).Value = "" Then
                        Range(Cells(i, 9), Cells(i, 10)).Cut
                        ActiveSheet.Paste Destination:=Range(Cells(i, 9), Cells(i, 10)).Offset(0, -1)
                        hit = hit + 1
                    End If
                Loop While hit < 3
 
                'si ast3(col9) tjr vide, décale les suivantes pas besoin de répétition.
                If Cells(i, 9).Value = "" Then
                    Cells(i, 10).Cut
                    ActiveSheet.Paste Destination:=Cells(i, 10).Offset(0, -1)
                End If
 
            Next i
Je vous remercie déjà de votre lecture.