OVH Cloud OVH Cloud

Formater nombre

17 réponses
Avatar
jean-luc Guitard
Bonjour,
comment formater 68500
en 68,500 séparateur américain (virgule)
avec les "##### "je trouve pas

7 réponses

1 2
Avatar
michdenis
'----------------------------------------
With Selection
x = Len(.Value)
Select Case x
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
End With
'----------------------------------------


MichD
--------------------------------------------
Avatar
michdenis
Tu peux automatiser l'application du format.
Je te donne un exemple.

Suppose que tu désires appliquer le format pour toutes
les cellules de la colonne B:B à chaque fois que tu modifies
ou saisis une nouvelle donnée. Copie ce qui suit dans le
module feuille où l'action se déroule.

À toi d'adapter la plage Range("B:B") pour celle de ta feuille.

'---------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Range("B:B"))
If Not Rg Is Nothing Then
Appliquer_Un_Format Rg
End If
End Sub
'---------------------------------------

'Il est préférable de mettre ce qui suit dans un module standard:
'-----------------------------------------
Sub Appliquer_Un_Format(Rg As Range)
Dim C As Range, X As Integer
With Rg
For Each C In .Cells
X = Len(.Value)
Select Case X
Case 0
.NumberFormat = "General"
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
Next
End With
End Sub
'---------------------------------------


MichD
--------------------------------------------
"michdenis" a écrit dans le message de groupe de discussion : ihp3b9$ji8$

'----------------------------------------
With Selection
x = Len(.Value)
Select Case x
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
End With
'----------------------------------------


MichD
--------------------------------------------
Avatar
jean-luc Guitard
Mille fois merci
bonne journée

"michdenis" a écrit dans le message de groupe de discussion : ihp3b9$ji8$

'----------------------------------------
With Selection
x = Len(.Value)
Select Case x
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
End With
'----------------------------------------


MichD
--------------------------------------------
Avatar
jean-luc Guitard
bonjour,
encore moi
comment formater case 2
pour obtenir 0,030 si l'on a 30
et case 1 pour obtenir 0,0030 si l'on a 3
merci

"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d4017f6$0$32471$

Mille fois merci
bonne journée

"michdenis" a écrit dans le message de groupe de discussion : ihp3b9$ji8$

'----------------------------------------
With Selection
x = Len(.Value)
Select Case x
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
End With
'----------------------------------------


MichD
--------------------------------------------
Avatar
michdenis
| comment formater case 2
| pour obtenir 0,030 si l'on a 30
| et case 1 pour obtenir 0,0030 si l'on a 3

Tu crées autant de "Case" que tu veux !

Sub Appliquer_Un_Format(Rg As Range)
Dim C As Range, X As Integer
With Rg
For Each C In .Cells
X = Len(.Value)
Select Case X
Case 0
.NumberFormat = "General"
Case 1 To 3
.NumberFormat = "0,000"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
Next
End With
End Sub


MichD
--------------------------------------------
"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d404ab3$0$7724$

bonjour,
encore moi
comment formater case 2
pour obtenir 0,030 si l'on a 30
et case 1 pour obtenir 0,0030 si l'on a 3
merci

"jean-luc Guitard" a écrit dans le message de groupe de discussion : 4d4017f6$0$32471$

Mille fois merci
bonne journée

"michdenis" a écrit dans le message de groupe de discussion : ihp3b9$ji8$

'----------------------------------------
With Selection
x = Len(.Value)
Select Case x
Case 3
.NumberFormat = "0,##0"
Case 4, 5, 6
.NumberFormat = "#,##0"
Case 7, 8, 9
.NumberFormat = "#,###,##0"
Case 10
.NumberFormat = "#,######,##0"
End Select
End With
'----------------------------------------


MichD
--------------------------------------------
Avatar
michdenis
J'aurais pu rajouter en début de macro dans celle-ci,
la ligne de code suivant :
On Error Resume Next

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Range("B:B"))
If Not Rg Is Nothing Then
On Error Resume Next
Appliquer_Un_Format Rg
End If
End Sub

MichD
--------------------------------------------
Avatar
jean-luc Guitard
merci mille fois

"michdenis" a écrit dans le message de groupe de discussion : ihpteh$p21$

J'aurais pu rajouter en début de macro dans celle-ci,
la ligne de code suivant :
On Error Resume Next

Private Sub Worksheet_Change(ByVal Target As Range)

Dim Rg As Range
Set Rg = Intersect(Target, Range("B:B"))
If Not Rg Is Nothing Then
On Error Resume Next
Appliquer_Un_Format Rg
End If
End Sub

MichD
--------------------------------------------
1 2