VBA Excel - extraire et colorer des nombres

Bonjour.

Je suis débutant en VBA, je sèche....

J'aimerai extraire des nombres dans un texte et les comparer à une valeur de référence.

Puis les colorer si une condition est validée et enfin recopier tout le texte avec le texte et chiffre colorés dans une autre cellule.

Je ne sais même plus par où commencer.

D'avance merci!!!

7colorer.zip (10.64 Ko)

Bonjour,

à tester,

j'ai présumé que les données sont en colonne A et débutent à la ligne 2

Sub test()
tb = Array("BKN", "OVC")

For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row  '
  For y = LBound(tb) To UBound(tb)
    t = Cells(i, "A")
     x = Application.Search(tb(y), t)
     If Not IsError(x) Then
       n = Val(Right(t, Len(t) - x - 2))
       If n > 2 Then Cells(i, "A").Characters(Start:=x, Length:=6).Font.Color = RGB(0, 176, 80)
     End If
  Next y
Next i

End Sub

Bonjour i20100.

Alors là, j'avoue que je n'y avais pas pensé le faire de cette manière (expérience de débutant !!!). J'ai passé une nuit entière à essayer de pondre les codes......

Le code marche à merveille, cependant, il ne colorie pas l'occurrence de 02 items présents dans une même ligne, mais seulement le premier mot trouvé .

Ex:

aa/ si j'ai BKN001 et OVC001 --> coloration ok

"BECMG 0700/0703 27003KT BKN001 OVC001"

bb/ si j'ai BKN001 et BKN000 ou (OVC001 et OVC000) --> coloration de BKN001 seulement

"BECMG 0700/0703 27003KT BKN001 BKN000"

As-tu une idée?

Cdlt

bonjour kotozone, i20100, le forum,

Peut-être ainsi.....

'macro de i20100 pour excel pratique

Sub test()
 Dim critère As Integer
        tb = Array("BKN", "OVC")
   critère = 2
  For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row  '
   For y = LBound(tb) To UBound(tb)
     t = Cells(i, "A")
     x = Application.Search(tb(y), t)
       If Not IsError(x) Then
         n = val(Right(t, Len(t) - x - 2))
        If n > critère Then
         Cells(i, "A").Characters(Start:=x, Length:=6).Font.Color = vbGreen
         Cells(i, "A").Characters(Start:=x, Length:=6).Font.Bold = True
        Else
         Cells(i, "A").Characters(Start:=x, Length:=6).Font.Color = vbRed
         Cells(i, "A").Characters(Start:=x, Length:=6).Font.Bold = True
        End If
       End If
   Next y
 Next i
End Sub

Cordialement,

re,

à tester,

6colorer-test.zip (15.96 Ko)

Bonjour.

Les 2 solutions proposées par i20100 et xorsankukai me semblent corrects!

un grand merci à vous 2 et vive le partage du savoir.

Cordialement.

Merci pour ce retour, bonne continuation!

bl
Rechercher des sujets similaires à "vba extraire colorer nombres"