Insertion formule par VBA trop long

Florian53

XLDnaute Impliqué
Bonsoir à tous,

Afin d’alléger un fichier excel je souhaite, remplir les formules par macro mais l’exécution est vraiment très longue.

VB:
Sub Macro1()
Dim i As Integer
For i = 3 To 941
''formule Number C3 
        Range("C" & i).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(ISNA(VLOOKUP(RC[-1],Tableau,2,FALSE)),""0"",VLOOKUP(RC[-1],Tableau,2,FALSE)))"
Next
End Sub

Pouvez vous m'expliquer cette lenteur ?

Merci à vous
 

Retraite8

XLDnaute Nouveau
Bonjour Florian53, bonjour le forum,

Je n'ai pas de donnée dans la feuille, ça prend donc 0,5 seconde.
Essai ainsi,
Code:
Sub Macro1()
Dim i As Integer

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For i = 3 To 941
            ''formule Number C3
    Range("C" & i).FormulaR1C1 = "=IF(RC[-1]="""","""",IF(ISNA(VLOOKUP(RC[-1],Tableau,2,FALSE)),""0"",VLOOKUP(RC[-1],Tableau,2,FALSE)))"
Next i

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
C'est toujours long d'accéder à une plage. Aussi faut il le faire le moins souvent possible. Surtout quand on peut le faire une fois au lieu de 939 !
VB:
Range("C3:C941").FormulaR1C1 = "=IF(RC[-1]="""","""",IF(ISNA(VLOOKUP(RC[-1],Tableau,2,FALSE)),""0"",VLOOKUP(RC[-1],Tableau,2,FALSE)))"
 

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat