Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
Correction d'une petite coquille dans le cas où la
donnée saisie se fait dans une cellule étant déjà
au format texte.
'----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "String"
If IsNumeric(c.Value) Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
End If
Case Is = "Date"
x = c.Value
c.Clear
c.NumberFormat = "DD/MM/YYYY"
c.Value = x
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'----------------------------------------
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Mik,
Voici ce qui est possible de faire :
Si une cellule affiche 12 ou 12.42...
tu peux utiliser ce format de cellule :
[>12]# ##0,00;# ##0 pour obtenir ce que
tu désires pour cette cellule. Mais il faut
comprendre les limites de ce format
si dans la cellule tu as 11comme la valeur
est inférieure à 12 tu auras un format sans décimale.
au même titre que si la cellule a une valeur de 15
tu auras un format avec décimale.
Pour obtenir ce que tu désires peu importe la valeur de
la cellule, tu dois recourir au vba avec une procédure qui
pourrait ressembler à celle-ci :
Tu copies ceci dans le module feuille où l'action se déroule
et tu adaptes la plage A1:A10 pour celle de ton application.
'--------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
sss = TypeName(c.Value)
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "Date"
c.NumberFormat = "DD/MM/YYYY"
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------------------------
Ce que tu cherches à faire est de retenir 2 formats de
cellule selon que le nombre affiché dans la cellule
ait des décimales ou non. Ça c'est impossible.
"mik" a écrit dans le message de groupe de discussion :
Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
Correction d'une petite coquille dans le cas où la
donnée saisie se fait dans une cellule étant déjà
au format texte.
'----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "String"
If IsNumeric(c.Value) Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
End If
Case Is = "Date"
x = c.Value
c.Clear
c.NumberFormat = "DD/MM/YYYY"
c.Value = x
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'----------------------------------------
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de groupe de discussion :
OEMlSPMJKHA.1492@TK2MSFTNGP03.phx.gbl...
Bonjour Mik,
Voici ce qui est possible de faire :
Si une cellule affiche 12 ou 12.42...
tu peux utiliser ce format de cellule :
[>12]# ##0,00;# ##0 pour obtenir ce que
tu désires pour cette cellule. Mais il faut
comprendre les limites de ce format
si dans la cellule tu as 11comme la valeur
est inférieure à 12 tu auras un format sans décimale.
au même titre que si la cellule a une valeur de 15
tu auras un format avec décimale.
Pour obtenir ce que tu désires peu importe la valeur de
la cellule, tu dois recourir au vba avec une procédure qui
pourrait ressembler à celle-ci :
Tu copies ceci dans le module feuille où l'action se déroule
et tu adaptes la plage A1:A10 pour celle de ton application.
'--------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
sss = TypeName(c.Value)
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "Date"
c.NumberFormat = "DD/MM/YYYY"
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------------------------
Ce que tu cherches à faire est de retenir 2 formats de
cellule selon que le nombre affiché dans la cellule
ait des décimales ou non. Ça c'est impossible.
"mik" <mik@discussions.microsoft.com> a écrit dans le message de groupe de discussion :
E7091B94-32F3-4229-B51F-923CA9F261D4@microsoft.com...
Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
Correction d'une petite coquille dans le cas où la
donnée saisie se fait dans une cellule étant déjà
au format texte.
'----------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "String"
If IsNumeric(c.Value) Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
End If
Case Is = "Date"
x = c.Value
c.Clear
c.NumberFormat = "DD/MM/YYYY"
c.Value = x
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'----------------------------------------
"MichDenis" a écrit dans le message de groupe de discussion :
Bonjour Mik,
Voici ce qui est possible de faire :
Si une cellule affiche 12 ou 12.42...
tu peux utiliser ce format de cellule :
[>12]# ##0,00;# ##0 pour obtenir ce que
tu désires pour cette cellule. Mais il faut
comprendre les limites de ce format
si dans la cellule tu as 11comme la valeur
est inférieure à 12 tu auras un format sans décimale.
au même titre que si la cellule a une valeur de 15
tu auras un format avec décimale.
Pour obtenir ce que tu désires peu importe la valeur de
la cellule, tu dois recourir au vba avec une procédure qui
pourrait ressembler à celle-ci :
Tu copies ceci dans le module feuille où l'action se déroule
et tu adaptes la plage A1:A10 pour celle de ton application.
'--------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
Set Rg = Intersect(Target, Range("A1:A10"))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each c In Rg
sss = TypeName(c.Value)
Select Case TypeName(c.Value)
Case Is = "Empty"
c.NumberFormat = "General"
Case Is = "Date"
c.NumberFormat = "DD/MM/YYYY"
Case Is = "Integer", "Long"
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Case Is = "Single", "Double"
If c.Value - CLng(c.Value) = 0 Then
x = c.Value
c.Clear
c.NumberFormat = "# ##0"
c.Value = x
Else
x = c.Value
c.Clear
c.NumberFormat = "# ##0.00"
c.Value = x
End If
Case Else
c.NumberFormat = "General"
End Select
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------------------------
Ce que tu cherches à faire est de retenir 2 formats de
cellule selon que le nombre affiché dans la cellule
ait des décimales ou non. Ça c'est impossible.
"mik" a écrit dans le message de groupe de discussion :
Bonjour,
j'avais cherché et même posé la question il y a quelques temps mais je n'ai
jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
Merci de votre aide
j'avais cherché et même posé la question il y a quelques temps mais
je n'ai jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
j'avais cherché et même posé la question il y a quelques temps mais
je n'ai jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
j'avais cherché et même posé la question il y a quelques temps mais
je n'ai jamais trouvé:
Quel est le format à appliquer pour que si le nombre est entier il
apparaissaise comme ca:
= 12 (et non pas 12,)
Si il est décimal à 1 chiffre après la virgule il apparaisse comme ca,
= 12,5 (et non pas 12,50)
2 chiffres après la virgule
= 12,55
3 chiffres après la virgule:
= idem 2 chiffres (et non pas 12,555)
Rien trouvé de mieux que #.## mais mes entiers apparaissent avec une
virgule: 12,
maintenant si tu veux un alignement sur le chiffre des unités, il va
me falloir un délai....
maintenant si tu veux un alignement sur le chiffre des unités, il va
me falloir un délai....
maintenant si tu veux un alignement sur le chiffre des unités, il va
me falloir un délai....