Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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)

Bonjour,

On n'est pas tout à fait dans le même cas de figure. Je vois apparaître une feuille Etudes.
Il m'est difficile de répondre sans être dans la configuration exacte

a+
 
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
364
Réponses
4
Affichages
155
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…