Modifier un code pour le simplifier

Bonjour, j'ai crée un code qui ajoute des colonnes avec différents calculs à la fin de la feuille1, ce code marche bien mais le problème c'est que ça met plus que 15 min pour 5000 lignes, est ce ce qu'il y'a moyen de l'écrire de façon différente pour gagner du temps. Merci

Sub Ratio()

Sheets("Feuil1").Select

Dim i As Long

Dim j As Integer

Dim k As Long

With Worksheets("Feuil1")

i = .Range("A" & Rows.Count).End(xlUp).Row

j = Cells(1, Columns.Count).End(xlToLeft).Column + 1

For k = 2 To i

Cells(1, j).Select

ActiveCell.FormulaR1C1 = "RATI85"

Cells(k, j).Select

ActiveCell.FormulaR1C1 = "=IFERROR((RC[-59]/(RC[-59]-RC[-3]))-1,0)"

Next

For k = 2 To i

Cells(1, j + 1).Select

ActiveCell.FormulaR1C1 = "RATI86"

Cells(k, j + 1).Select

ActiveCell.FormulaR1C1 = "=IFERROR((RC[-52]/(RC[-52]-RC[-3]))-1,0)"

Next

For k = 2 To i

Cells(1, j + 2).Select

ActiveCell.FormulaR1C1 = "RATI87"

Cells(k, j + 2).Select

ActiveCell.FormulaR1C1 = "=IFERROR((RC[-48]-RC[-50])/((RC[-48]-RC[-50])-RC[-3])-1,0)"

Next

For k = 2 To i

Cells(1, j + 3).Select

ActiveCell.FormulaR1C1 = "PPEINT_HEURE"

Cells(k, j + 3).Select

ActiveCell.FormulaR1C1 = "=IFERROR(RC[-51]/((RC[-49]-RC[-51])/RC[-53]),0)"

Next

For k = 2 To i

Cells(1, j + 4).Select

ActiveCell.FormulaR1C1 = "%EPAVE"

Cells(k, j + 4).Select

ActiveCell.FormulaR1C1 = "=IFERROR(RC[-83]/RC[-81],0)"

Next

End With

End Sub

Sans fichier joint c'est difficile de s'imaginer le code entrain de fonctionner.

Essaye de rajouter sous "Sub Ratio()" Le code suivant :

Application.Screenupdating=false

Bonjour

En complément de Greg.leo

A vérifier

Sub Ratio()
Dim Ligne As Long
Dim Colonne As Integer

  Application.ScreenUpdating = False
  With Worksheets("Feuil1")
    Ligne = .Range("A" & Rows.Count).End(xlUp).Row
    Colonne = .Cells(1, Columns.Count).End(xlToLeft).Column + 1

    .Cells(1, Colonne).Resize(1, 5) = Array("RATI85", "RATI86", "RATI87", "PPEINT_HEURE", "%EPAVE")
    .Cells(2, Colonne).FormulaR1C1 = "=IFERROR((RC[-59]/(RC[-59]-RC[-3]))-1,0)"
    .Cells(2, Colonne + 1).FormulaR1C1 = "=IFERROR((RC[-52]/(RC[-52]-RC[-3]))-1,0)"
    .Cells(2, Colonne + 2).FormulaR1C1 = "=IFERROR((RC[-48]-RC[-50])/((RC[-48]-RC[-50])-RC[-3])-1,0)"
    .Cells(2, Colonne + 3).FormulaR1C1 = "=IFERROR(RC[-51]/((RC[-49]-RC[-51])/RC[-53]),0)"
    .Cells(2, Colonne + 4).FormulaR1C1 = "=IFERROR(RC[-83]/RC[-81],0)"

    .Cells(2, Colonne).Resize(1, 5).AutoFill .Range(.Cells(2, Colonne), .Cells(Ligne, Colonne + 4))
  End With
End Sub

Merci beaucoup le code met une seconde maintenant.

Rechercher des sujets similaires à "modifier code simplifier"