Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Correction macro

1 réponse
Avatar
mattparisien59
Bonjour,
J'ai une macro qui s'éxécute mais pas comme je voudrais alors j'explique le contexte En colonne A j'ai les jours de la semaine L, M, Mer,J ,V, s, D en fonctiion de la colonne B où il y a les dates pour un mois (sous la forme 01-mai par exemple).
POur les jours férié je voudrais que la ligne soit en couleur y compris le jour en colonne A.

Sub jourférié()
'met la ligne en couleur si le jour est férié

Range("B1").Select

For i = 1 To 40

If (ActiveCell.Text = "01-janv" Or ActiveCell.Text = "1-janv" Or ActiveCell.Text = "01-mai" Or ActiveCell.Text = "1-mai" Or ActiveCell.Text = "08-mai" Or ActiveCell.Text = "8-mai" Or ActiveCell.Text = "14-juil" Or ActiveCell.Text = "15-août" Or ActiveCell.Text = "1-nov" Or ActiveCell.Text = "01-nov" Or ActiveCell.Text = "11-nov" Or ActiveCell.Text = "25-déc") Then

Range(Selection, ActiveCell.Offset(0, 30)).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With

End If

ActiveCell.Offset(1, 0).Select

Next i

End Sub


Cette macro fonctionne mais ne met pas la couleur dans la colonne A pour le jour férié correspond. Merci à l'avance pour votre aide

1 réponse

Avatar
Hervé
Bonsoir,

Une possibilité parmis tant d'autres (j'ai un peu modifié ta macro) :

Sub jourférié()

Dim Dico As Object
Dim Plage As Range
Dim Cel As Range

'met la ligne en couleur si le jour est férié
Set Dico = CreateObject("Scripting.Dictionary")

Dico.Add "01-janv", "01-janv"
Dico.Add "1-janv", "1-janv"
Dico.Add "01-mai", "01-mai"
Dico.Add "1-mai", "1-mai"
Dico.Add "08-mai", "08-mai"
Dico.Add "8-mai", "8-mai"
Dico.Add "14-juil", "14-juil"
Dico.Add "15-août", "15-août"
Dico.Add "01-nov", "01-nov"
Dico.Add "1-nov", "1-nov"
Dico.Add "11-nov", "11-nov"
Dico.Add "25-déc", "25-déc"

Set Plage = [B1:B40]

For Each Cel In Plage
If Dico.exists(Cel.Value) Then
With Cel.EntireRow.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With
End If
Next Cel

Set Cel = Nothing
Set Plage = Nothing
Set Dico = Nothing

End Sub

Hervé.


"mattparisien59" a écrit dans le message
de news:
Bonjour,
J'ai une macro qui s'éxécute mais pas comme je voudrais alors j'explique
le
contexte En colonne A j'ai les jours de la semaine L, M, Mer,J ,V, s, D en
fonctiion de la colonne B où il y a les dates pour un mois (sous la forme
01-mai
par exemple).
POur les jours férié je voudrais que la ligne soit en couleur y compris le
jour
en colonne A.

Sub jourférié()
'met la ligne en couleur si le jour est férié

Range("B1").Select

For i = 1 To 40

If (ActiveCell.Text = "01-janv" Or ActiveCell.Text = "1-janv"
Or
ActiveCell.Text = "01-mai" Or ActiveCell.Text = "1-mai" Or ActiveCell.Text
> "08-mai" Or ActiveCell.Text = "8-mai" Or ActiveCell.Text = "14-juil" Or
ActiveCell.Text = "15-août" Or ActiveCell.Text = "1-nov" Or
ActiveCell.Text > "01-nov" Or ActiveCell.Text = "11-nov" Or ActiveCell.Text = "25-déc") Then

Range(Selection, ActiveCell.Offset(0, 30)).Select
With Selection.Interior
.ColorIndex = 15
.Pattern = xlSolid
End With

End If

ActiveCell.Offset(1, 0).Select

Next i

End Sub


Cette macro fonctionne mais ne met pas la couleur dans la colonne A pour
le
jour férié correspond. Merci à l'avance pour votre aide