Bonsoir un essai :
Sub LRD()
Dim TabloS, TabloR() As String
TabloS = ActiveSheet.Range("C2:C" & ActiveSheet.Range("C" & Rows.Count).End(xlUp).Row).FormulaLocal
ReDim TabloR(1 To UBound(TabloS), 1 To 1)
For i = 1 To UBound(TabloS)
TabloR(i, 1) = Replace(TabloS(i, 1), "=", "-") & ""
Next i
ActiveSheet.Range("C2").Resize(UBound(TabloS), 1) = TabloR
End Sub
Le principe : on récupère dans un TabloS VBA (en mémoire vive) les formules comprises dans la plage de cellule. Astuce : on met Rows.Count afin de s'adapter à la taille des feuilles d'Excel sans mettre de valeur "en dur" dans le code.
On boucle sur ce tableau en mémoire vive donc, et on converti la formule récupérée en "String" avec le &"" et on supprime le "=" qu'on remplace par un tiret du 6 et on met ce résultat dans un TabloR qui a été redimensionné en fonction du TabloS.
Une fois la boucle terminée, on copie colle les donnée du TabloR sur la plage de cellule concernée par la conversion.
Résultat : un accès feuille global pour récupérer les données, un accès feuille global pour les réintégrer, quand on sait que ce sont les accès feuilles qui ralentisse bien souvent les codes...
@ bientôt
LouReeD