Macro changer nombre de décimale en fonction des valeurs d'un tableau

Sandrine123

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide concernant une macro.

J'ai un fichier ClasseurTest.xlsm avec un tableau (fixe pour les colonnes, variables pour le nombre de ligne).

A l'intérieur, j'ai des valeurs numériques dans les colonnes D,E,F.

Je souhaiterais une macro qui, en fonction des valeurs présentes dans ces colonnes, affiche 2 ou 3 chiffres après la virgule.

Voici les conditions :

si la valeur est comprise entre [0.025;0.10] = 3 chiffres après la virgule.
si la valeur est inférieure à 0.025 ou supérieure à 0.10 = 2 chiffres après la virgule.

Merci d'avance de votre aide.

Bonne journée.
 

Pièces jointes

  • ClasseurTest.xlsm
    9 KB · Affichages: 55
  • ClasseurTest.xlsm
    9 KB · Affichages: 49

piegre

XLDnaute Junior
Re : Macro changer nombre de décimale en fonction des valeurs d'un tableau

Salut Sandrine,

Essaie de faire une macro avec une valeur en mettant 3 chiffres après la virgule et une autre valeur en mettant 2 chiffres après la virgule puis ensuite tu prend le code de la macro et met un IF pour chaque condition
 

Iznogood1

XLDnaute Impliqué
Re : Macro changer nombre de décimale en fonction des valeurs d'un tableau

Bonjour,

pas besoin de macro, mais une simple mise en forme conditionnelle.

Dans l'exemple ci-joint, on met 2 chiffres après la virgule, sauf quand ta condition est remplie, auquel cas on affiche 3 chiffres.
 

Pièces jointes

  • ClasseurTest.xlsm
    11.8 KB · Affichages: 63
  • ClasseurTest.xlsm
    11.8 KB · Affichages: 71

job75

XLDnaute Barbatruc
Re : Macro changer nombre de décimale en fonction des valeurs d'un tableau

Bonjour Sandrine123, piegre, Iznogood1,

Soit c'est uniquement une question d'affichage des valeurs, on peut utilise la solution par MFC d'Iznogood1.

Ou plus simplement mettre les cellules au format nombre personnalisé [<0,025]0,00;[>0,1]0,00;0,000

Soit en plus vous voulez arrondir les valeurs à 2 ou 3 décimales et il faut une macro :

Code:
Sub Arrondir()
Dim P As Range, t, ncol%, i&, j%, x As Variant
Set P = [D3:F10] 'à adapter
t = P 'matrice, plus rapide
ncol = UBound(t, 2)
For i = 1 To UBound(t)
  For j = 1 To ncol
    x = t(i, j)
    If IsNumeric(CStr(x)) Then t(i, j) = Round(x, IIf(x < 0.025 Or x > 0.1, 2, 3))
Next j, i
P.NumberFormat = "[<0.025]0.00;[>0.1]0.00;0.000" 'format nombre personnalisé
P = t
End Sub
La macro met bien sûr les cellules au format que j'ai indiqué.

Fichier joint.

Edit : noter qu'avec l'arrondi les cellules E10 et F10 affichent 0,100 puisque leur valeur est devenue 0,1.

A+
 

Pièces jointes

  • Arrondir(1).xlsm
    29.2 KB · Affichages: 53
Dernière édition:

job75

XLDnaute Barbatruc
Re : Macro changer nombre de décimale en fonction des valeurs d'un tableau

Re,

Noter que sur Excel 2003 et versions antérieures il n'y a pas de format Nombre pour les MFC.

Le format personnalisé que j'ai donné ne pose pas de problème.

A+
 

Discussions similaires

Réponses
7
Affichages
293

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote