Microsoft 365 macro de comparaison

bd.afaf

XLDnaute Junior
Bonjour Forum,

je veux faire une macro selon le concept suivant : si le mois d'avant est payé et que le mois prochain remonte un montant qui n'est pas payé, de mettre ce montant en gras et en rouge. j'ai donné le résultat que je souhaite avoir avec une macro ( les montants en rouge) .

Voici mon tableau comme exemple:
 

Pièces jointes

  • Classeur3.xlsx
    15.9 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Vous m'étonnez, votre fichier contient déjà plusieurs MFC :
1652556252424.png

Je n'ai fait qu'en rajouter une.
Il suffit de faire Accueil/Mise en forme conditionnelle/Gérer les règles.
De plus votre fichier étant un xlsx, il ne peut pas contenir de macros, sinon ce serait un xlsm.
 

bd.afaf

XLDnaute Junior
Mais ma MFC fait exactement ce que vous voulez, et sans VBA.
Qu'entendez vous par "cette MFC est faite manuellement" ?
dans mon fichier d'origine, j'ai les mois de janvier jusqu'à Décembre, je vais pas faire la MFC à chaque mois !
comme j'ai mentionné avant, j'ai un code VBA dans lequel je veux intégrer cette opération, genre ne pas la faire manuellement!!
ce que tu as trouvé ce sont des MFC que j'ai fais manuellement pour vous expliqué le résultat que je souhaite avoir au final.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ avec :
VB:
Sub RougeSiPayé()
    Dim Ligne%, Colonne%, DL%
    Application.ScreenUpdating = False
    For Colonne = 8 To 26 Step 2                        ' de Mars à Décembre
        If Cells(4, Colonne) <> "" Then                 ' pas de traitement si pas de mois
            DL = Cells(65000, Colonne).End(xlUp).Row    ' dernière ligne
            For Ligne = 5 To DL
                If Cells(Ligne, Colonne) <> "payé" And Cells(Ligne, Colonne - 2) = "payé" Then
                    Cells(Ligne, Colonne).Font.Color = vbRed
                    Cells(Ligne, Colonne).Font.Bold = True
                Else
                    Cells(Ligne, Colonne).Font.Color = vbBlack
                    Cells(Ligne, Colonne).Font.Bold = False
                End If
            Next Ligne
        End If
    Next Colonne
End Sub
Je traite de mars à décembre. Si les mois n'existent pas ils sont ignorés.
Evidemment à adapter.
 

Pièces jointes

  • Classeur3 (5).xlsm
    27.4 KB · Affichages: 2

soan

XLDnaute Barbatruc
Inactif
@bd.afaf (salut sylvanu)

ton fichier en retour (sans la MFC que j'avais ajoutée)

fais Ctrl e ➯ travail effectué ! :)

code VBA :

VB:
Option Explicit

Sub Essai()
  Dim dlg&, lig&
  With Worksheets("Feuil2").ListObjects("Tableau2")
    If .DataBodyRange Is Nothing Then Exit Sub
    dlg = .ListRows.Count: Application.ScreenUpdating = 0
    For lig = 1 To dlg
      With Cells(lig + 4, 6)
        If .Value = "payé" And .Offset(, 2) <> 0 Then
          With Cells(.Row, 8).Font
            .Color = -16776961: .Bold = -1
          End With
        End If
      End With
    Next lig
  End With
End Sub

soan
 

Pièces jointes

  • Classeur3.xlsm
    23.6 KB · Affichages: 1

soan

XLDnaute Barbatruc
Inactif
@bd.alaf

??? tu n'as pas téléchargé le fichier de mon post #10 ? essaye-le d'abord, au moins : peut-être qu'il fera ce que tu attendais ... et par macro ! 😉 (si ça te convient, ton post #11 est inutile)

soan
 

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25