Microsoft 365 macro mise en forme conditionnelle

Coralie01120

XLDnaute Occasionnel
Bonjour,


J’aimerai afficher les cellules en bleu de la colonne C si ces valeurs sont les valeurs max par rapport à la vitesse réelle de l’onglet Rapport_Act. La macro a été créée (Maj_new_vit) mais j’aimerai en plus les mettre en bleu.
Est il possible d’ajouter un msgbox en indiquant le nombre de nouvelles vitesses (cellules bleues) ?


Voici mon fichier : Suivi_Production.xlsm (29,8 Ko)


Bien cordialement,
 

Pièces jointes

  • Suivi_Production.xlsm
    29.8 KB · Affichages: 10

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Coralie01120 , le Forum

Je ne comprends pas, je pensais avoir résolu ce problème avec toi dans ce Fil :


Maintenant dans ton fichier tu demandes :
Mon besoin :
- Lorsque l'on a ajouté les valeurs max dans la colonne C (Macro Maj_new_vit) j'aimerai que ces cellules soient en bleues.
- Il faudrait aussi avertir l'utilisateur via un message box disant qu'il ya par exemple 8 nouvelles vitesses historiques (ces mêmes cellules bleues).

Ce n'est pas excatement ce que fait ma démo :
1594994430407.png


Il te manque quoi au juste ? Car là je ne comprends plus ?

Bonne journée

@+Thierry
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @Coralie01120 , le Forum

C'est tout simple à adapter :

VB:
Sub Speed_Comparator()
Dim WSRapAct As Worksheet, WSTabVit As Worksheet
Dim RangeRapAct As Range, RangeTabVit As Range
Dim CellRapAct As Range, CellTabVit As Range
Dim TheTimer As Single
Dim x As Integer, y As Integer

TheTimer = Timer

Set WSRapAct = ThisWorkbook.Worksheets("Rapport_Act")
Set WSTabVit = ThisWorkbook.Worksheets("Tab_Vit")

WSRapAct.Range("D:D").Interior.ColorIndex = xlNone

Set RangeRapAct = WSRapAct.Range("C2:C" & WSRapAct.Range("C1000").End(xlUp).Row)
Set RangeTabVit = WSTabVit.Range("A2:A" & WSTabVit.Range("A1000").End(xlUp).Row)

For Each CellRapAct In RangeRapAct
    For Each CellTabVit In RangeTabVit
        If CellRapAct.Text = CellTabVit.Text Then
            With CellRapAct.Offset(0, 1)
                 If .Value < CellTabVit.Offset(0, 2).Value Then
                    .Value = CellTabVit.Offset(0, 2).Value
                   
                    CellRapAct.Offset(0, 2).Interior.ColorIndex = 8 '<<<<<<<<<<  c'est ici que tu dois modifier pour avoir la couleur en C
                    y = y + 1
                    Exit For
                 Else
                    If .Value > CellRapAct.Offset(0, 12) Then
                    CellRapAct.Offset(0, 2).Interior.ColorIndex = 33 '<<<<<<<<<<  c'est ici que tu dois modifier pour avoir la couleur en C
                    Exit For
                    Else
                    CellRapAct.Offset(0, 2).Interior.ColorIndex = xlNone '<<<<<<<<<<  c'est ici que tu dois modifier pour avoir la couleur en C
                    Exit For
                    End If
                End If
           End With
        End If
    Next CellTabVit
x = x + 1
Next CellRapAct


MsgBox x & " Comparaisons ont été faites en " & Timer - TheTimer & " Secondes" & vbCrLf _
            & y & " plus grange(s) vitesse(s) historique(s) retrouvée(s)", vbInformation

End Sub

Bonne journée et semaine
@+Thierry

EDIT 09H55 j'ai été un peu vite en besogne, je viens de changer l'algo ATTENTION
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 181
Messages
2 085 997
Membres
103 083
dernier inscrit
SALAHBEN