VBA - changer l'ordre d'insertion des lignes
L
Bonjour à tous,
Par avance, merci pour votre aide précieuse.
Je dispose d'un script me permettant d'insérer des lignes manquantes à un fichier. Cependant, je souhaite disposer d'une incrémentation décroissante en place d'une incrémentation croissante sur la colonne D de mon fichier.
En intervenant sur la ligne ci-dessous, je pensais résoudre l'anomalie mais sans succès
For x = arrColumnT(i, 1) To 0 Step -1Le code est celui-ci
For i = UBound(arrColumnT, 1) To LBound(arrColumnT, 1) + 1 Step -1
If arrColumnT(i, 1) > 0 Then
'calcul en valeur des colonnes Q et T
.Cells(i, "Q").Formula = "=IF(P" & i & "="""",0,INDEX(D:D,$P" & i & ",1)+1)"
.Cells(i, "T").Formula = "=IF(D" & i & "-Q" & i & "<0,0,IF(D" & i & "-Q" & i & ">12,12,(D" & i & "-Q" & i & ")))"
'on copie la ligne qui doit être dupliquée
.Range("A" & i & ":T" & i).Copy
.Range("A" & i & ":T" & i + arrColumnT(i, 1) - 1).Insert Shift:=xlDown
Application.CutCopyMode = False
tmpInt = .Cells(i, 8) + 1
tmpInt2 = .Cells(i, 9)
For x = arrColumnT(i, 1) To 0 Step -1
arrOneRow = .Range("A" & i + x & ":I" & i + x)
arrOneRow(1, 4) = x
If tmpInt > 0 Then
arrOneRow(1, 8) = tmpInt - 1
tmpInt = tmpInt - 1
arrOneRow(1, 5) = 1
Else
If tmpInt2 > 0 Then
arrOneRow(1, 9) = tmpInt2 - 1
tmpInt2 = tmpInt2 - 1
arrOneRow(1, 5) = 3
Else
arrOneRow(1, 9) = 0
arrOneRow(1, 8) = 0
arrOneRow(1, 5) = 6
End If
End If
.Range("A" & i + x).Resize(UBound(arrOneRow, 1), UBound(arrOneRow, 2)) = arrOneRow
Next x
Je suis dans une impasse.
Le fichier est en pièce jointe, la deuxième feuille du fichier affiche le résultat attendu
Milles mercis pour votre aide !