Bonjour.

Envoyé par
mouss4rs
si la cellule contient un nombre, vérifier si le nombre contient plus de 7 chiffre après la virgule: si oui, la surligner en rouge.

Envoyé par
mouss4rs
la cellule 26,8743907 n'est pas colorier en rouge.
Normal car elle n'a pas plus de sept chiffres après la virgule !
Sinon voici une approche simple calculant donc le nombre de chiffres après le séparateur décimal et ce,
quel qu'il soit, le point chez nos amis de la
Belle Province - tabernacle !

- comme la virgule en France :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Function NumericCells(Rg As Range) As Range
Dim Rc As Range, Rf As Range
On Error Resume Next
Set Rc = Rg.SpecialCells(xlCellTypeConstants, xlNumbers)
Set Rf = Rg.SpecialCells(xlCellTypeFormulas, xlNumbers)
If Not Rc Is Nothing And Not Rf Is Nothing Then
Set NumericCells = Union(Rc, Rf)
ElseIf Not Rc Is Nothing Then
Set NumericCells = Rc
Else
Set NumericCells = Rf
End If
Set Rc = Nothing
Set Rf = Nothing
End Function
Sub Demo()
Dim Cel As Range, Rg As Range
Set Rg = NumericCells(ActiveSheet.UsedRange)
If Not Rg Is Nothing Then
SD$ = Mid$(CStr(1.2), 2, 1)
Application.ScreenUpdating = False
For Each Cel In Rg
P& = InStr(Cel.Value, SD)
If P And Len(Cel.Value) - P > 7 Then Cel.Interior.Color = vbRed
Next
Set Rg = Nothing
Application.ScreenUpdating = True
End If
End Sub |
Afin d'accélérer la procédure
Demo, seules les cellules numériques sont traitées.
S'il y a déjà des cellules en rouge alors qu'elles ne devraient pas l'être,
les remettre avec un fond normal avant de lancer cette procédure …
Parmi t'étais pas loin mais sans la présence d'un séparateur décimal
Tablo(1) déclenche une erreur …
__________________________________________________________________________________________
Merci de cliquer sur

pour chaque message ayant aidé puis sur

pour clore cette discussion …
Partager