Microsoft 365 macro de comparaison

  • Initiateur de la discussion Initiateur de la discussion bd.afaf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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.
 
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

@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

@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
 
Re, pour mon code changez la ligne :
VB:
If Cells(Ligne, Colonne) <> "payé" And Cells(Ligne, Colonne - 2) = "payé" Then
par
If Cells(Ligne, Colonne) Like "*payé*" = False And Cells(Ligne, Colonne - 2) Like "*payé*" = True Then
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
18
Affichages
336
Réponses
9
Affichages
157
Réponses
2
Affichages
249
Retour