Bonjour,
J'ai des données qui se présentent sous la forme ci-dessous (AVANT) que je transforme sous la forme (APRES) exemple simplifié il y a un nombre variable de colonnes et de lignes souvent 60 colonnes et 30000 lignes.
J'ai fait une boucle qui viens compter les cellules vides de chaque lignes puis qui décale d'autant les données avec un shift:=xlToright ligne par ligne.
Cela marche bien mais l'execution est longue, j'ai désactiver le rafraichissement de l'affichage et mis le calcul en manuel.
Si quelqu'un pouvez me donner une piste pour amèliorer le code pour accélerer l'execution.

Merci par avance.

Avant
	3	4	5		
	1	2	3	4	5
	1	2	3	4	5
	2	3	4	5	
	2	3	4	5	
	1	2	3	4	5
	2	3	4	5	
	3	4	5		
	1	2	3	4	5
	1	2	3	4	5
Après
			3	4	5
	1	2	3	4	5
	1	2	3	4	5
		2	3	4	5
		2	3	4	5
	1	2	3	4	5
		2	3	4	5
			3	4	5
	1	2	3	4	5
	1	2	3	4	5
Code de la boucle à optimiser :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
For j = Ligne_4 To Nbr_lig						
 
       Cells_Vide = Range(Adress_1)						
      'MsgBox (Cells_Vide)						
 
       If Cells_Vide <> 0 Then						
               For i = 1 To Cells_Vide						
                 Range("J" & Ligne_4).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove						
                Next						
        End If						
       Ligne_4 = Ligne_4 + 1						
        Adress_1 = "I" & Trim(Ligne_4)						
       Range(Adress_1).Select						
Next