Format de cellule personnalsé

anna111

XLDnaute Junior
bonjour à tous
je cherche une formule de format de cellule à copier dans nombre/personalsé/type qui me permette ce-ci :
1- si je tape : 1000 s'affiche : 1 000 kg
2- si je tape : 1000,5 s'affiche 1 000,5 kg
mon probleme,
quand 1 ok, 2 affiche 1 001 kg
quand 2 ok, 1 affiche 1 000,0 kg
un format standard avec séparateur de millier sans décimale + "kg"
quelqu'un la connais ?
merci
 

Pierrot93

XLDnaute Barbatruc
Re : Format de cellule personnalsé

Bonsoir Anna, PierreJean:)

pas tout suivi, mais fonctionne ainsi chez moi sous 2003, code placé dans le module de la feuille :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target - Int(Target) < 0.05 Then
    Target.NumberFormat = "0 000"" kg"""
  Else
    Target.NumberFormat = "0 000.0"" kg"""
  End If
End Sub

A noter, remplacer les séparateurs de milliers (espace) par une virgule le cas échéant...

bonne soirée
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Format de cellule personnalsé

Re,

comme ceci peut être, mais c'est à utiliser dans le module de la feuille concernée

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E24:E44")) Is Nothing Then
    If Target - Int(Target) < 0.05 Then
        Target.NumberFormat = "0 000"" kg"""
    Else
        Target.NumberFormat = "0 000.0"" kg"""
    End If
End If
End Sub

@+

Edit : modifier "nothing" en lieu et place de "notheng"
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Format de cellule personnalsé

Bonjour Anna, PierreJean

essaye ainsi, controle 2 plages de données, mais sur la même feuille, pour contrôler une 2ème feuille il y aura lieu de placer le code dans le module des 2 feuilles ou bien 1 seul fois dans le module "thisworkbook" en utilisant l'événement "Workbook_SheetChange" :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E24:E44,E87:E100")) Is Nothing Then
    If Target - Int(Target) < 0.05 Then
        Target.NumberFormat = "0 000"" kg"""
    Else
        Target.NumberFormat = "0 000.0"" kg"""
    End If
End If
End Sub

bonne journée
@+
 

Discussions similaires

Statistiques des forums

Discussions
311 707
Messages
2 081 746
Membres
101 812
dernier inscrit
trufu