Re,
On va faire simplifier.
Je me suis rendu compte que tes jours de fermetures sont "colorés" via un format conditionnel, dès lors on va se baser sur celui-ci.
On boucle sur chaque cellules de ta colonne B ( à partir de B3), donc le cas où l'intérieur de ta cellule est colorée ( différente de blanc (code couleur 16777215 ), on modifie la hauteur de la ligne en cours.
Lorsque tu change de mois, tes données ce mettent à jours mais pas la hauteur de ligne, donc lors de la boucle, si ta couleur est blanc la ligne reprends la hauteur d'origne
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Sub Test2()
Dim wb As Workbook: Set wb = ThisWorkbook ' initialise ce classeur comme classeur de travail
Dim sh As Worksheet: Set sh = wb.Worksheets("2020 par mois") ' initialise la feuille "2020 par mois" comme feuille de travail
Dim cel As Range
For Each cel In Range("B3:B" & sh.Range("B" & Rows.Count).End(xlUp).Row + 1) ' pour chaque cellule de la Col B
If cel.DisplayFormat.Interior.color <> 16777215 Then ' si la cellule coloré = Samedi / Dimanche / Férié / Congés...
cel.Rows.RowHeight = 7 ' J'ai pris 7 de haut
Else ' Si pas coloré = jours de travail
cel.Rows.RowHeight = 64.5 ' J'ai laissé la valeur actuelle de 62.5, taille de tes lignes à l'origine
End If ' Fin si
Next cel 'cellule suivante
End Sub |
Partager