Supprimer un arrondi dans une formule (avec VBA)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Typhoon20

XLDnaute Nouveau
Bonjour,

J'ai un fichier contenant une formule différente (qui fait appelle à différentes feuilles du classeur) dans chaque cellules (par ex: A1='Etudes'!F52 ; A2='1'!G34 ; ...).

J'ai trouvé une macro pour appliquer un arrondi à ces cellules seulement j'aimerai supprimer cet arrondi.

Voici la macro trouvée sur une des discussion de ce forum:

Sub Arrondi()
For Each c In Selection
If Not IsNumeric(c) Then GoTo OnContinu
If c.HasFormula Then
AF = c.Formula
DéjàArrondi = InStr(1, AF, "=ROUND")
If DéjàArrondi > 0 Then
GoTo OnContinu
Else
c.Formula = "=ROUND(" & Right(c.Formula, Len(c.Formula) - 1) & ",0)": c.Locked = True
End If
Else
If Not IsEmpty(c) Then c.Formula = "=ROUND(" & c.Value & ",0)": c.Locked = True
End If
OnContinu:
Next c
End Sub


Comme l'indique la macro, elle arrondi tout à "0" seulement j'aimerai l'arrondir à "2" et quand je change le "0" par "2" ca n'a aucun effet! 🙁

J'aimerai soit une autre macro qui m'effacerait la formule "arrondi", soit une macro qui me permette de modifier la macro existante.

J'espère que quelqu'un pourra m'aider! 🙂

Merci d'avance,
 
Re : Supprimer un arrondi dans une formule (avec VBA)

Bonjour,

Quand c'est déjà arrondi, ça doit pouvoir le faire :

Sub Arrondi()
Stop
For Each c In Selection
If Not IsNumeric(c) Then GoTo OnContinu
If c.HasFormula Then

DéjàArrondi = InStr(1, AF, "=ROUND")
If DéjàArrondi > 0 Then

c.Formula = Left(AF, Len(AF) - 2) & "2)": c.Locked = True
GoTo OnContinu
Else
c.Formula = "=ROUND(" & Right(c.Formula, Len(c.Formula) - 1) & ",2)": c.Locked = True
End If
Else
If Not IsEmpty(c) Then c.Formula = "=ROUND(" & c.Value & ",2)": c.Locked = True
End If
OnContinu:
Next c
End Sub

a+
 
Re : Supprimer un arrondi dans une formule (avec VBA)

Bonjour Chalet53,

Merci pour ta réponse!

Ta formule fonctionne seulement ca me marque 2 fois l'arrondi... (par ex: =Arrondi(Arrondi(Etudes!L52;0);2) ).
Là il arrondi toujours à 0...

Idéalement l'arrondi ne devrait apparaitre qu'une fois (donc = Arrondi(EtudesL52;2) )...

Vois-tu une solution?

Un tout grand merci pour ton aide!
 
Re : Supprimer un arrondi dans une formule (avec VBA)

C'est à titre d'exemple.
Dans chaque cellule j'ai une formule qui fait appelle à différentes feuilles du fichier (c'est pour calculer des prix). J'ai besoin d'arrondir ces prix à deux chiffres après la virgule. Seulement, j'ai déjà appliquer la macro de mon premier message (avec un arrondi à zéro) qui me rajoute un arrondi à ma formule dans la cellule.

Par ex: ma formule de départ c'est ='Etudes'!L52
Avec la macro j'ai rajouté l'arrondi à 0 ca m'a donné =ARRONDI(Etudes!L52;0)
Et maintenant quand j'exécute ta macro ca me marque =ARRONDI(ARRONDI(EtudesL52;0);2) donc l'arrondi à 2 est bie présent mais ne s'applique pas étant donné qu'il y a un premier arrondi à 0 avant.
Donc mon but est de supprimer le premier arrondi (à 0) pour n'appliquer que l'arrondi à 2! (et avoir un résultat comme ca =ARRONDI(Etudes!L52;2)

Tu comprends? 😕
 
Re : Supprimer un arrondi dans une formule (avec VBA)

Bonjour Typhoon20

En l'absence de CHALET53 que je salue:
Il me semble que la macro de CHALET doit etre utilisée en lieu et place de lamacro initiale
Sinon:

A tester

Code:
For Each c In Selection
  c.formula=replace(c.formula,"0","2")
next
 
Re : Supprimer un arrondi dans une formule (avec VBA)

Pierrejean,

Je me suis réjouie un peu vite! 🙁

Ta macro remplace tout les zéros de la formule...

Par ex: dans une cellule ma formule c'est =ARRONDI(Etudes!L50;0) ca me change en =ARRONDI(Etudes!L52;2)
Donc l'arrondi est bon mais plus ma formule de départ! 😕

Y-a-t-il une solution pour que ca ne me change que mon arrondi?

Merci!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
234
Réponses
4
Affichages
363
Réponses
4
Affichages
150
Retour