Formule "Si" en VBA

Florian53

XLDnaute Impliqué
Bonjour le forum,

Je voudrais avoir une formule dans les cellules de A2:A500, j'ai utilisé l'enregistreur de Macro pour ça mais le code est vraiment très long à exécuter certainement du a sa grandeur.

Code:
Sub Formules()
With Sheets(16).Select
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",1)"
    Range("A3").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
    Range("A4").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
    Range("A3:A4").Select
    Selection.AutoFill Destination:=Range("A3:A499"), Type:=xlFillDefault
    Range("A3:A499").Select
    ActiveWindow.ScrollRow = 459
    ActiveWindow.ScrollRow = 455
    ActiveWindow.ScrollRow = 452
    ActiveWindow.ScrollRow = 444
    ActiveWindow.ScrollRow = 436
    ActiveWindow.ScrollRow = 427
    ActiveWindow.ScrollRow = 415
    ActiveWindow.ScrollRow = 403
    ActiveWindow.ScrollRow = 387
    ActiveWindow.ScrollRow = 373
    ActiveWindow.ScrollRow = 357
    ActiveWindow.ScrollRow = 335
    ActiveWindow.ScrollRow = 316
    ActiveWindow.ScrollRow = 297
    ActiveWindow.ScrollRow = 277
    ActiveWindow.ScrollRow = 260
    ActiveWindow.ScrollRow = 244
    ActiveWindow.ScrollRow = 230
    ActiveWindow.ScrollRow = 219
    ActiveWindow.ScrollRow = 210
    ActiveWindow.ScrollRow = 202
    ActiveWindow.ScrollRow = 195
    ActiveWindow.ScrollRow = 186
    ActiveWindow.ScrollRow = 180
    ActiveWindow.ScrollRow = 173
    ActiveWindow.ScrollRow = 168
    ActiveWindow.ScrollRow = 163
    ActiveWindow.ScrollRow = 158
    ActiveWindow.ScrollRow = 154
    ActiveWindow.ScrollRow = 149
    ActiveWindow.ScrollRow = 145
    ActiveWindow.ScrollRow = 141
    ActiveWindow.ScrollRow = 136
    ActiveWindow.ScrollRow = 133
    ActiveWindow.ScrollRow = 128
    ActiveWindow.ScrollRow = 123
    ActiveWindow.ScrollRow = 117
    ActiveWindow.ScrollRow = 111
    ActiveWindow.ScrollRow = 105
    ActiveWindow.ScrollRow = 100
    ActiveWindow.ScrollRow = 93
    ActiveWindow.ScrollRow = 87
    ActiveWindow.ScrollRow = 82
    ActiveWindow.ScrollRow = 77
    ActiveWindow.ScrollRow = 73
    ActiveWindow.ScrollRow = 68
    ActiveWindow.ScrollRow = 65
    ActiveWindow.ScrollRow = 60
    ActiveWindow.ScrollRow = 57
    ActiveWindow.ScrollRow = 54
    ActiveWindow.ScrollRow = 51
    ActiveWindow.ScrollRow = 48
    ActiveWindow.ScrollRow = 46
    ActiveWindow.ScrollRow = 42
    ActiveWindow.ScrollRow = 39
    ActiveWindow.ScrollRow = 35
    ActiveWindow.ScrollRow = 30
    ActiveWindow.ScrollRow = 25
    ActiveWindow.ScrollRow = 20
    ActiveWindow.ScrollRow = 14
    ActiveWindow.ScrollRow = 8
    ActiveWindow.ScrollRow = 2
    ActiveWindow.ScrollRow = 1
    End With
    Sheets("Tableau de bord").Activate
End Sub

Est ce qu'il y a une possibilité de réduire ce code ?

Merci
 

mutzik

XLDnaute Barbatruc
With Sheets(16).Select
Range("A2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",1)"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]="""","""",R[-1]C+1)"
Range("A3:A4").Select
Selection.AutoFill Destination:=Range("A3:A499"), Type:=xlFillDefault

sinon
with sheets(16)
Range("A2").FormulaR1C1 = "=IF(RC[1]="""","""",1)"

les autres lignes aussi et,
pas besoin de sélectionner une cellule pour y entrer une valeur ou une formule