XL 2013 Format cellule

maval

XLDnaute Barbatruc
Bonjour

J'ai des cellules ou je met un format personnalisé c'est à dire ceci : 24.72 Km² en faisant

# ##0,00" km²" jusque la pas de problème.

Comment faire quand j'ai des valeurs ronde comme 20 km² sans avoir ceci 20.00 km² avoir les deux zéro après la virgule

Je vous remercie d'avance

Max
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @maval,

Sur la plage, on affecte à toutes les cellules le format personnalisé :
VB:
# ##0,00" km²"

Ensuite, sur cette même plage, on met la MFC suivante:
1033978

Si le second 888 apparaît avec deux décimales égales à 0, c'est parce que sa partie décimale est : ,00001
 

Pièces jointes

  • maval- point 00- v1.xlsx
    12.8 KB · Affichages: 8

Dranreb

XLDnaute Barbatruc
Bonjour
Si le second 888 apparaît avec deux décimales égales à 0, c'est parce que sa partie décimale est : ,00001
Pour éviter cela j'emploierais plutôt la formule
Code:
=ARRONDI(C4*100;0)=ARRONDI(C4;0)*100
avec d'ailleurs peut être comme format : 0_,_0_0" km²", le format normal état alors 0,0?" km²". Ça permettrait d'alligner les valeurs sur leur chiffre des unités.
 

Dranreb

XLDnaute Barbatruc
Il faudrait néanmoins qu'il y ait quelque chose. Que par exemple la virgule ne soit par reproduite par le format "0,??" quand les "?" ne donnent lieu à aucun chiffre. Mais voila, ces américains n'ont jamais rien compris, et ils s'en foutent. Il croyent toujours qu'on utilise comme séparateur décimal un autre caractère, alors qu'en fait c'est un autre signe de ponctuation. On prend celui qui sert à séparer des chose quand il y a des choses à séparer, alors qu'eux utilisent celui qui sert à les terminer, même quand le nombre n'est pas terminé, ce qui est moins choquant pour eux quand il l'est.
 

job75

XLDnaute Barbatruc
Bonjour maval, mapomme, djidji59430, Bernard,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A2:A" & Rows.Count), UsedRange) 'plage à adapter
If Target Is Nothing Then Exit Sub
Dim tablo, i&, v#
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
If FilterMode Then ShowAllData 'si la feuille est filtrée
For Each Target In Target.Areas 'si entrées multiples (copier-coller)
    tablo = Target.Resize(, 2) 'matrice, plus rapide, au moins 2 éléments
    For i = 1 To UBound(tablo)
        If IsNumeric(CStr(tablo(i, 1))) Then
            v = tablo(i, 1)
            tablo(i, 1) = Format(v, "0" & IIf(v = Int(v), "", ".00")) & " km²"
        End If
    Next i
    Target = tablo 'restitution
Next Target
Application.EnableEvents = True 'réactive les évènements
End Sub
A+
 

Pièces jointes

  • Format km(1).xlsm
    21.3 KB · Affichages: 10

Dranreb

XLDnaute Barbatruc
La macro qui mettrait en place la MeFC ne serait guère plus compliquée :
VB:
Option Explicit
Sub Test()
   ActiveSheet.Cells.FormatConditions.Delete
   DécimalesOmises Rng:=ActiveSheet.[B2:B11], NbDéc:=2, Unité:=" km²"
   End Sub
Sub DécimalesOmises(ByVal Rng As Range, ByVal NbDéc As Integer, Optional ByVal Unité As String)
   Dim Zéros As String
   With Application: .EnableEvents = False: .Calculation = xlCalculationManual
      .ScreenUpdating = False: End With
   If Unité <> "" Then Unité = """" & Unité & """"
   Rng.NumberFormat = "0.0" & String(NbDéc - 1, "?") & Unité
   Zéros = String(NbDéc, "0")
   MeFCR1C1(Rng, "=ROUND(RC*1" & Zéros & ",0)=ROUND(RC,0)*1" & Zéros).NumberFormat _
      = "0_." & Replace(Zéros, "0", "_0") & Unité
   With Application: .EnableEvents = True: .Calculation = xlCalculationAutomatic: End With
   End Sub
Private Function MeFCR1C1(ByVal Rng As Range, ByVal Formule As String) As FormatCondition
   With ActiveSheet.Names.Add(Name:="NomTemporairePourMeFC", RefersToR1C1:=Formule)
      Application.GoTo Rng(1, 1)
      Set MeFCR1C1 = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:=.RefersToLocal)
      .Delete: End With
   MeFCR1C1.StopIfTrue = False
   End Function
Enfin … peut être un peu, si, quand même …
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

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