Bonjour,
Il faut lire ce que tu écris ! Tu n'affectes que la cellule active, qui est alors A1 et le reste...
Sub Code()
Dim i As Integer
Application.ScreenUpdating = False
With ActiveSheet
For i = 1 To .Range("B" & .Rows.Count).End(xlUp).Row
.Cells(i, 1).FormulaR1C1 = "=MID(RC[1],3,1)"
Next i
End With
End Sub
NB- Les déclarations de variables se placent toujours en tête de procédure. Tout Select est à proscrire dans un code qui se respecte.
Utiliser VBA pour insérer des formules (ce qui est toujours plus rapide manuellement) est une mauvaise utilisation de VBA.
On met toujours le code sous balises Code dans un post, pour qu'il soit plus lisible.
Sur ce, cordialement.