Bonjour à tous,
Voila, j’aimerais marquer les jours d’un planning, avec couleur et abréviations, selon la zone de texte cliquée.
En PJ, un tableau descriptif des règles de marquage des jours, à respecter.
Ce que je souhaiterais, c'est de corriger le code, car il y a un dysfonctionnement dans le marquage des jours.
Merci d’avance.
Voila, j’aimerais marquer les jours d’un planning, avec couleur et abréviations, selon la zone de texte cliquée.
Code:
Sub Action()
Dim Cel As Range
Dim Nom As String
Dim Abrev As String
Dim Couleur As Integer
Dim We As Boolean, jFr As Boolean, jSm As Boolean, Marquage As Boolean
Dim Coul As Long
If Not Intersect(Selection, Range("B5:AF49")) Is Nothing Then
If Selection.Rows.Count > 1 Then
MsgBox "Une seule personne à la fois"
Exit Sub
End If
If Range("A" & Selection.Row) = "" Then
MsgBox "Aucune personne"
Exit Sub
End If
Nom = ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text
Coul = ActiveSheet.Shapes(Application.Caller).OLEFormat.Object.Interior.Color
MsgBox "Couleur de fond : " & Coul
jSm = True
Select Case Nom
Case "Congé AI"
Abrev = "CAI"
We = True ' Force le Week-end
jFr = True ' Force les jours fériés
Case "Congé AO"
Abrev = "CAO"
Case "Congé Mal"
Abrev = "CM"
We = True ' Force le Week-end
jFr = True ' Force les jours fériés
Case "Congé Exp"
Abrev = "CE"
Case "RC"
Abrev = "RC"
We = True ' Force le Week-end
jFr = True ' Force les jours fériés
jSm = False
Case "Récup", "Récup 1/2"
Abrev = "Ré"
Case "Format"
Abrev = "FO"
Case "Abs Irg"
Abrev = "AI"
Case "Abs Aut"
Abrev = "AA"
End Select
If Abrev = "" Then
MsgBox "Texte non reconnu dans le bouton " & Nom
Exit Sub
End If
For Each Cel In Selection
If jSm And Not We And Not jFr Then
Marquage = True
Else
If We And jFr And Not jSm Then
Marquage = True
End If
End If
If Marquage Then
Cel = Abrev
Cel.Interior.Color = Coul
End If
Next Cel
End If
End Sub
En PJ, un tableau descriptif des règles de marquage des jours, à respecter.
Ce que je souhaiterais, c'est de corriger le code, car il y a un dysfonctionnement dans le marquage des jours.
Merci d’avance.