XL 2013 Même nombre de chiffre après la virgule qu'une autre cellule

flstyle

XLDnaute Nouveau
Bonjour à tous.


Je suis un peu dans le brouillard, si quelqu’un pouvait m’aider ça serait génial.

Voilà j’ai créé un fichier qui me permet de calculer automatiquement les valeurs de pièce mécanique par rapport aux tolérances nationales de celle-ci et aussi par rapport au possible traitement de celle-ci.

Bref, le problème vient des normes métrologiques qui m’oblige de mettre au même format au niveau des 0 après la virgule.

En effet, si la tolérance à un zéro après la virgule ou/et le traitement à deux zéros âpres la virgule, je dois prendre le format où il y a le plus de zéro après la virgule et le mettre partout sur la même ligne.

En clair le veut le même format dans toutes les cellules numéraires en fonction de 2 cellules.

Je voudrais bien faire du VBA dessus, car sur certaines cellules il y a déjà des formules et d’autres non (qui se remplies).

Le problème étant que je ne connais pas du tout cette fonction VBA et ne sais pas par où commencer.


Pour vous aider, j’ai mis en p. j. mon dossier réel sur lequel je suis en train de travailler, et voilà aussi la formule « standard » que je mettrai sur une cellule, telle que la cellule J13 par exemple en mise en forme conditionelle:

DROITE(OU(G13;G14;I13),3= «*** » avec en format ## ##,000

DROITE(OU(G13;G14;I13),2= «** » avec en format ## ##,00

DROITE(OU(G13;G14;I13),1= «* » avec en format ## ##,0

Bref, j’espère que je me suis fait comprendre.

Je pensais faire quelque chose du genre (trouver sur internet), si cela peut aider:

Code:
Dim oCel As Range
   With Selection
      For Each oCel In Selection.Cells
         If IsNumeric(oCel.Value) Then
            If oCel.Value = Int(oCel.Value) Then
               oCel.NumberFormat = "#0"
            Else
               oCel.NumberFormat = "#0.##"
            End If
         End If
      Next oCel
   End With
End Sub

Voilà je vous remercie par avance.


Cordialement.
 

Pièces jointes

  • Fiche exemple.xlsx
    633.7 KB · Affichages: 63

Dranreb

XLDnaute Barbatruc
Bonjour

Comme ça peut être :

upload_2016-11-24_15-20-59.png


La 1ère formule étant :
Code:
=ET(MOD($G13*1000;1)=0;MOD($G14*1000;1)=0;MOD($I13*1000;1)=0)
 

Dranreb

XLDnaute Barbatruc
Peut être plutôt comme ça :

1ère condition pour 0 décimale :
Code:
=ET(ARRONDI($G13;0)=$G13;ARRONDI($G14;0)=$G14;ARRONDI($I13;0)=$I13)
2ème condition pour 1 décimale :
Code:
=ET(ARRONDI($G13;1)=$G13;ARRONDI($G14;1)=$G14;ARRONDI($I13;1)=$I13)
etc.
 

flstyle

XLDnaute Nouveau
Bonjour,
Je vous remercie pour votre rapide réponse, ce que vous avez fait est bien dans le principe, le problème c'est qu'avec ça on ne peut pas dire a notre cellule $J$13:$J$14 "met toi au même format que la cellule où il y à le plus de décimal des trois cellules de comparaison"
Alors on pourrais essayer avec:

=OU(MOD($G13*1000;1)=0;MOD($G14*1000;1)=0;MOD($I13*1000;1)=0)

Mais là encore ca ne fonctionne pas car il n'y aura pas de hiérarchie.
Si on pouvais on le sans mise en forme conditionnel, dans le principe ca donnerai cela:

=SI(OU(MOD($G13*1000;1)=0;MOD($G14*1000;1)=0;MOD($I13*1000;1)=0);FORMAT(# ###0,000);SI(OU(MOD($G13*100;1)=0;MOD($G14*100;1)=0;MOD($I13*100;1)=0);FORMAT(# ###0,00);SI(OU(MOD($G13*10;1)=0;MOD($G14*10;1)=0;MOD($I13*10;1)=0);FORMAT(# ###0,0);SI(OU(MOD($G13*1;1)=0;MOD($G14*1;1)=0;MOD($I13*1;1)=0);FORMAT(# ###0))

Voila, mes compétences sont pas assez développées après ça.
 

flstyle

XLDnaute Nouveau
Super ça marche ,
je ne savais pas que mettre les règles de mise en forme conditionnelle avait une importante. Maintenant je le sais , MERCI !!
Alors petite modification, je suis partis dans les règles de la plus petite décimal à la plus grande.

Merci encore ;)
 

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 197
Membres
112 680
dernier inscrit
AKDS