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
Après3 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 :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 : 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
Partager