MFC sur epaisseur de bordure selon jour de la semaine

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 !

patouman

XLDnaute Occasionnel
Bonjour à tous,
j'aimerais faire une MFC sur un tableau calendrier, selon les criteres suivants :
si jour = vendredi >>> faire bordure gauche de la cellule en gras
si jour = 31 >>> faire bordure droite de la cellule en gras

Je sais bien le faire pour colorer ou changer la police, mais pour la bordure je ne trouve pas

merci pour votre aide par avance
 
Re : MFC sur epaisseur de bordure selon jour de la semaine

Bonjour patouman,

Je crois que ce que tu cherche à faire est impossible en MFC... On ne peut pas jouer sur l'épaisseur de bordure.
Il te faudra passer par une macro.

Je pense qu'un fichier montrant la structure de ton fichier serait alors le bienvenue 😉.

A+
 
Re : MFC sur epaisseur de bordure selon jour de la semaine

Re-bonjour,

Ci-dessous un code à adapter :
VB:
Sub Bordures()
Dim iRow As Long, iCol As Long, shCal As Worksheet

    Set shCal = ThisWorkbook.Sheets("A CALENDRIER REPARTITION DZ")
    
    With shCal
        'boucler sur les lignes 9, 15 et 21
         For iRow = 9 To 21 Step 6
            'boucler de la colonne B à la dernière contenant de l'information
             For iCol = 2 To .Cells(iRow, .Columns.Count).End(xlToLeft).Column
                
                'si le jour est un vendredi
                 If Weekday(.Cells(iRow, iCol), vbMonday) = 5 Then
                    'modifier la bordure (en gras)
                     .Cells(iRow, iCol).Resize(3).Borders(xlEdgeLeft).LineStyle = xlContinuous
                    .Cells(iRow, iCol).Resize(3).Borders(xlEdgeLeft).Weight = xlMedium
                Else
                    'modifier la bordure (en normal)
                     .Cells(iRow, iCol).Resize(3).Borders(xlEdgeLeft).LineStyle = xlContinuous
                    .Cells(iRow, iCol).Resize(3).Borders(xlEdgeLeft).Weight = xlThin
                End If
                
                'si le jour est un 31
                 If Day(.Cells(iRow, iCol)) = 31 Then
                    'modifier la bordure (en gras)
                     .Cells(iRow, iCol).Resize(3).Borders(xlEdgeRight).LineStyle = xlContinuous
                    .Cells(iRow, iCol).Resize(3).Borders(xlEdgeRight).Weight = xlMedium
                Else
                    'modifier la bordure (en normal)
                     .Cells(iRow, iCol).Resize(3).Borders(xlEdgeRight).LineStyle = xlContinuous
                    .Cells(iRow, iCol).Resize(3).Borders(xlEdgeRight).Weight = xlThin
                End If
            Next iCol
        Next iRow
    End With
End Sub

Si tu veux te passer de macro (surtout pour du look) et faire tout en MFC avec une seule épaisseur de bordure en jouant sur le type et la couleur de trait.

attachment.php


A+
 

Pièces jointes

  • Image1.png
    Image1.png
    102.2 KB · Affichages: 76
  • Image1.png
    Image1.png
    102.2 KB · Affichages: 113
  • Image1.png
    Image1.png
    102.2 KB · Affichages: 100
- 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
8
Affichages
605
Réponses
4
Affichages
583
Retour