Bonjour,
une autre proposition ;
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Long
For c = 2 To 33
If Cells(3, c).Value = "Samedi" Or Cells(3, c).Value = "Dimanche" Then
Cells(3, c).ColumnWidth = 20
Else
End If
Next c
End Sub
Mettre le code sur chaque feuille.
edit : on peut faire 1 seul code pour toutes les feuilles du classeur, il suffit de mettre ça dans ThisWorkbook (et pas sur chaque feuille comme je disais ci-dessus) ;
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Long
For c = 2 To 33
If Cells(3, c).Value = "Samedi" Or Cells(3, c).Value = "Dimanche" Or Cells(3, c).Value = "S" Or Cells(3, c).Value = "D" Then
Cells(3, c).ColumnWidth = 20
Else
End If
Next c
End Sub
L'effet se fera sur la feuille active, pas toutes en même temps.