Merci pour ta réponse et sur le conseil d'éviter les ''select"
Je viens de récrire mon code, en suivant tes conseils :
Sub macro_formules()
Feuil2.Range("B3").FormulaR1C1 = "=IF(ISBLANK(RC[-1]),"""",R[-1]C+1)"
Feuil2.Range("B3").Resize(998).FillDown
Feuil2.Range("H2").FormulaR1C1 = "=IF(C6=""AC"",""2"","""")&IF(C6=""ICP"",""3"","""")&IF(C6=""P"",""2"","""")&IF(C6=""Q"",""2"","""")&IF(C6=""S"",""1"","""")&IF(C6=""TM"",""1"","""")"
Feuil2.Range("H2").Resize(999).FillDown
Feuil2.Range("E2").FormulaR1C1 = "=IF(RC[-1]>0,EDATE(RC[-1],1),"""")"
Feuil2.Range("E2").Resize(999).FillDown
End Sub
Pour exécuter ce code au démarrage du classeur, voici ma macro dans ThisWorkBook :
Private Sub Workbook_Open()
Feuil2.Range("B3").FormulaR1C1 = "=IF(ISBLANK(RC[-1]),"""",R[-1]C+1)"
Feuil2.Range("B3").Resize(998).FillDown
Feuil2.Range("H2").FormulaR1C1 = "=IF(C6=""AC"",""2"","""")&IF(C6=""ICP"",""3"","""")&IF(C6=""P"",""2"","""")&IF(C6=""Q"",""2"","""")&IF(C6=""S"",""1"","""")&IF(C6=""TM"",""1"","""")"
Feuil2.Range("H2").Resize(999).FillDown
Feuil2.Range("E2").FormulaR1C1 = "=IF(RC[-1]>0,EDATE(RC[-1],1),"""")"
Feuil2.Range("E2").Resize(999).FillDown
End Sub
Tout fonctionne comme je le souhaitais, merci beaucoup