1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| Private Sub Worksheet_Change(ByVal Target As Range)
'Modification automatique de la formule
'Si je change une donnée dans la colonne C
If Not Application.Intersect(Target, Me.Range("C4:C443")) Is Nothing Then
Application.ScreenUpdating = False
Select Case Target
Case Me.Range("C9:C68")
Case Else
Target.Offset(0, 1).Value = "=IF(RC[-1]="""","""",IF(RC[-1]=""OFF"",""OFF"",IF(ISERR((RC[-1]*24+RC[2])/24),""OFF"",IF(RC[-1]>=R3C38,((RC[-1]*24-(24-RC[2]))/24),(RC[-1]*24+RC[2])/24))))"
Target.Offset(0, 1).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Target.Offset(0, 4).Value = "=IF(RC[-4]>=R3C40,RC[-1],IF(AND(RC[-1]<=12,RC[-1]>=5.5),(IF(AND(VLOOKUP(RC[-5],'Préférences Horaires'!R3C2:R58C4,2,FALSE)=""X"",RC[-1]>=5.5),RC[-1]-0.5,IF(AND(VLOOKUP(RC[-5],'Préférences Horaires'!R3C2:R58C4,3,FALSE)=""X"",RC[-1]>=5.5),RC[-1]-1,RC[-1]))),IF(AND(RC[-5]="""",RC[-4]=""""),"""",IF(RC[-1]<5.5,RC[-1],IF(RC[-1]="""","""",IF(RC[-1]>12,""-""))))))"
Target.Offset(0, 4).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Target.Offset(0, 2).Value = "=IF(RC[-1]=""OFF"",RC[-2],IF(RC[-2]="""","""",TEXT(RC[-2],""h:mm"")&""-""&TEXT(RC[-1],""h:mm"")))"
Target.Offset(0, 2).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Target.Select
End Select
Application.ScreenUpdating = True
End If
end sub |
Partager