Mise en forme

bonjour à tous,

j’ai un problème de mise en forme un peu spéciale:

J’ai un tableau de 4 fois neuf numéros dans lequel je veux mettre le fond des cases en couleur jaune.

En D2 un numéro qui change régulièrement je veux donc si par exemple elle est à 12 mettre le fond de la case ou il y a le 12 dans le tableau en jaune et ainsi de suite pour savoir au fur et à mesure que D2 change ce qui avait avant.

Seul contraint quand la case D1 passe à 50 il faut remettre tous les fonds en blanc sans s’occuper du numéro qui vient de s’inscrire en D2. puis on redémarre une série.

J’ai déjà une macro qui m’inscrit le numéro en D2 et je voudrais appeler juste après la macro de changement de fond.

J’ai joint un fichier test.

Merci pour votre immense aide.

Bien cordialement,

Daniel

4test.xlsm (9.01 Ko)

Bonjour,

Une proposition en VBA, à mettre dans la feuille ...

Voir si ça convient ...

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range

   If Not Intersect(Target, Range("D1:D2")) Is Nothing Then
      For Each Cel In Range("G2:i6,K4:M6, O4:Q6, S4:U6")
         If Range("D1") > 50 Then
            Cel.Interior.Color = xlNone
         Else
            If Cel.Value = Range("D2").Value Then
               Cel.Interior.Color = 65535
            Else
            End If
         End If
      Next
   End If
End Sub

ric

je regarde merci pour la proposition

bonjour,

juste une chose:

les case D1 et D2 sont les résultats d'un calcul (je viens coller le résultat dedans) et là cela ne fonctionne plus.

si je rentre en manuel cela fonctionne mais en automatique avec calcul non???

sinon, à part ce bug, c'est bien ce qu'il me faut bravo

Daniel

Bonjour,

Une proposition avec l'événement "Calculate" ...

Private Sub Worksheet_Calculate()

Dim Cel As Range

For Each Cel In Range("G2:i6,K4:M6, O4:Q6, S4:U6")

If Range("D1") > 50 Then

Cel.Interior.Color = xlNone

Else

If Cel.Value = Range("D2").Value Then

Cel.Interior.Color = 65535

Else

Cel.Interior.Color = xlNone

End If

End If

Next

End Sub

ric

Bonjour,

yes cela fonctionne juste une erreur que j'ai corrigé car les cases repassées au blanc.

voilà le code final:

Private Sub Worksheet_Calculate()
Dim Cel As Range

For Each Cel In Range("G2:i6,K4:M6, O4:Q6, S4:U6")
If Range("D1") > 50 Then
Cel.Interior.Color = xlNone
Else
If Cel.Value = Range("D2").Value Then
Cel.Interior.Color = 65535
Else
End If
End If
Next
End Sub 

merci à ric pour son aide et vraiment un trés bon site.

Daniel

ric

Rechercher des sujets similaires à "mise forme"