Re : probleme planing congé - absence
Salut KIM,
Si je m'adresse à toi, c'est que je suis aussi sur un planning et je n'arrive pas à faire ce que je veux.
Voici le code (du débutant que je suis)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Counter As Integer
If Not Intersect(Target, [C12:CG61]) Is Nothing And Target.Count = 1 Then
Select Case UCase(Target.Value)
Case "SEM MATIN"
Target.Interior.Color = RGB(28, 195, 5)
Target.Font.ColorIndex = RGB(0, 0, 0)
For Counter = 1 To 8
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "LUNDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MARDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MERCREDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "JEUDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "5:00"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "VENDREDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "SAMEDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "JSV"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "DIMANCHE" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "RH"
End If
Next Counter
Case "SEM JOUR TOT"
Target.Interior.Color = RGB(204, 255, 255)
Target.Font.Color = RGB(0, 0, 0)
For Counter = 1 To 8
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "LUNDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MARDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MERCREDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "JEUDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "VENDREDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "8:15"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "SAMEDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "JSV"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "DIMANCHE" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "RH"
End If
Next Counter
Case "SEM JOUR TARD"
Target.Interior.Color = RGB(255, 204, 0)
Target.Font.Color = RGB(0, 0, 0)
For Counter = 1 To 8
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "LUNDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "JSV"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MARDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "MERCREDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "JEUDI" Or ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "VENDREDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "8:45"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "SAMEDI" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "JSV"
End If
If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2).Value = "DIMANCHE" Then
ActiveCell.Offset(rowOffset:=Counter).Value = "RH"
End If
Next Counter
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End If
End Sub
Ça marche uniquement quand la case active se situe dans une colonne précise. Si elle est plus éloignée ça ne fonctionne plus. C'est normal puisque j'écris : If ActiveCell.Offset(rowOffset:=Counter, columnOffset:=-2)
En fait je ne trouve pas comment remplacer columnOffset:=-2 par le nom de la colonne dans laquelle je fais la recherche.
Pour info, je veux écrire automatiquement dans des cellules des informations différentes, suivant que le jour est différent. Les jours se situent dans la colonne C
Aurais-tu une solution de contournement pour m'aider.
Merci
Chripatoche