XL 2013 Modifier une formule en VBA

sr94

XLDnaute Occasionnel
Bonjour

Je dois effectuer des modifications dans de multiples tableaux. Ces tableaux sont constitués d'un tas de formules (non modifiables) auxquelles je dois rajouter un arrondi.

J'exécute la macro suivante que j'exécute après la sélection de toute ma plage :
VB:
Sub Macro1()
For Each c In Selection
If Not IsEmpty(c) Then
x = Right(c.Formula, Len(c.Formula) - 1)
c.FormulaLocal = "=ARRONDI(" & x & ";2)"
End If

Next
End Sub
Lorsque les formules sont simples cela fonctionne bien.
Par contre j'ai une erreur si j'ai un calcul dans la formule avec une virgule. En faisant différents tests il semble que par exemple 0,7 devient 0.7 et cela génère une erreur.

Je vous mets ci-joint un exemple, savez vous ce qu'il faut modifier ?

merci beaucoup
 

Fichiers joints

Dranreb

XLDnaute Barbatruc
Bonjour.
Essayez comme ça :
VB:
Sub Macro1()
Dim C As Range
For Each C In Selection
   If C.HasFormula Then C.Formula = "=ROUND(" & Mid$(C.Formula, 2) & ",2)"
   Next C
End Sub
 

Discussions similaires


Haut Bas