format celulle pour nombre simple

Evelynetfrancois

XLDnaute Impliqué
bonjour
pouvez vous m aider ?
je recherche ,pour une colonne , un format de nombre
me donnant 12 si le nombre est entier et 0.250 pour un nombre avec décimales
le tout restant des nombres et ( non du texte) additionnables
merci pour vos sujetions
bon apres midi a tous
E et F
 

job75

XLDnaute Barbatruc
Re : format celulle pour nombre simple

Bonjour,

Dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :

Code:
Private Sub Worksheet_Change(ByVal r As Range)
Set r = Intersect(r, Me.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r 'si entrées multiples
  If IsNumeric(r) Then r.NumberFormat = IIf(Int(r) = r, "0", "0.000")
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : format celulle pour nombre simple

Re,

Si l'on veut se limiter à la colonne A :

Code:
Private Sub Worksheet_Change(ByVal r As Range)
Set r = Intersect(r, [A:A], Me.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r 'si entrées multiples
  If IsNumeric(r) Then r.NumberFormat = IIf(Int(r) = r, "0", "0.000")
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : format celulle pour nombre simple

Re,

Si les données en colonne A sont calculées par des formules utiliser :

Code:
Private Sub Worksheet_Calculate()
Dim r As Range
Set r = Intersect([A:A], Me.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r
  If IsNumeric(r) Then r.NumberFormat = IIf(Int(r) = r, "0", "0.000")
Next
End Sub
Toute la colonne doit être traitée.

A+
 

Evelynetfrancois

XLDnaute Impliqué
Re : format celulle pour nombre simple

Bonjour job75+++
Dans un premier temps je pensais juste a un format de cellules...
Mais vu que ta proposition en VBA fait des merveilles, je m'y plis !!!
Mais maintenant me vient une autre interrogation :
J’ai environ 60 feuilles dans 1 même classeur
Dois je coller dans chaque feuille la macro ou est il possible de l’adapter pour la mettre dans ThisWorkBook
Encore mille mercis
E et F
 

job75

XLDnaute Barbatruc
Re : format celulle pour nombre simple

Re,

Oui dans ThisWorkbook :

Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal r As Range)
Set r = Intersect(r, Sh.[A:A], Sh.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r 'si entrées multiples
  If IsNumeric(r) Then r.NumberFormat = IIf(Int(r) = r, "0", "0.000")
Next
End Sub

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Dim r As Range
Set r = Intersect(Sh.[A:A], Sh.UsedRange)
If r Is Nothing Then Exit Sub
For Each r In r
  If IsNumeric(r) Then r.NumberFormat = IIf(Int(r) = r, "0", "0.000")
Next
End Sub
A+
 

job75

XLDnaute Barbatruc
Re : format celulle pour nombre simple

Re,

Si les colonnes A des feuilles sont déjà renseignées il est facile de les mettre à jour :

Code:
Sub MAJ()
Dim w As Worksheet
For Each w In Worksheets
w.[A:A].Copy w.[A1]
Next
End Sub
La ou les macros du post #6 étant bien sûr en place.

A+
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko