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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) ' _Change se déclanche lors de modif du contenue de la feuille
'DECLARATION DE VARIABLE RANGE
Dim Plagebase As Range, Plgtab As Range, Plgtotal As Range, Plgfait As Range, Plgstatfait As Range, Plgstatdelais As Range, Plgdate1 As Range, Plgdate2 As Range, janvier As Range, fevrier As Range, mars As Range, avril As Range, mai As Range, juin As Range, juillet As Range, aout As Range, septembre As Range, octobre As Range, novembre As Range, decembre As Range
Set Plagebase = Range("J:J") 'Colonne base
Set Plgtab = Range("B" & Target.Row & ":P" & Target.Row) 'Selection du tableau
Set Plgtotal = Range("B" & Target.Row & ":BE" & Target.Row) 'Selection de la totalité de la ligne utiliser, stat compris
Set Plgfait = Range("O:O") 'Colonne intervention faite
Set Plgstatfait = Range("AC" & Target.Row) 'Colonne si intervention faite = 1
Set Plgstatdelais = Range("BE" & Target.Row) 'Colonne pour delais1 = 1
Set Plgdate1 = Range("L" & Target.Row) 'Colonne date de début
Set Plgdate2 = Range("P" & Target.Row) 'Colonne date de fin
Set janvier = Range("AE" & Target.Row)
Set fevrier = Range("AF" & Target.Row)
Set mars = Range("AG" & Target.Row)
Set avril = Range("AH" & Target.Row)
Set mai = Range("AI" & Target.Row)
Set juin = Range("AJ" & Target.Row)
Set juillet = Range("AK" & Target.Row)
Set aout = Range("AL" & Target.Row)
Set septembre = Range("AM" & Target.Row)
Set octobre = Range("AN" & Target.Row)
Set novembre = Range("AO" & Target.Row)
Set decembre = Range("AP" & Target.Row)
'DESACTIVATION DES EVENEMENTS
Application.EnableEvents = False
'DESACTIVATION DE LA MAJ D'ECRAN A CHAQUE CALCUL
Application.ScreenUpdating = False
'DECLARATION DE VARIABLE DATE
Dim Plgstatdate1 As Date
Plgstatdate1 = Range("L" & Target.Row) 'Colonne date d'acquisition
'Plgstatdate2 = Range("P" & Target.Row) 'Colonne date d'intervention faite
'AJOUT DE LA DATE D'ACQUISITION
If Target.Column = 10 Then If Not (IsEmpty(Target.Value)) Then Range("L" & Target.Row).Value = Date _
Else: Range("L" & Target.Row).ClearContents
'AJOUT DE LA DATE D'INTERVENTION FAITE
If Target.Column = 15 Then If Not (IsEmpty(Target.Value)) Then Range("P" & Target.Row).Value = Date _
Else: Range("P" & Target.Row).ClearContents
'CHANGEMENT DE COULEUR DE LA LIGNE EN FONCTION DE LA BASE
If Not Application.Intersect(Target, Plagebase) Is Nothing And Target.Count = 1 Then
Select Case Target
Case Is = "AN": Plgtab.Interior.Color = RGB(72, 198, 5) 'vert
Case Is = "HE": Plgtab.Interior.Color = RGB(225, 206, 154) 'Vanille
Case Is = "CH": Plgtab.Interior.Color = RGB(212, 115, 212) 'mauve
Case Is = "VE": Plgtab.Interior.Color = RGB(84, 249, 141) 'menthe à l'eau
Case Is = "FO": Plgtab.Interior.Color = RGB(255, 0, 0) 'rouge
Case Is = "NA": Plgtab.Interior.Color = RGB(44, 117, 255) 'bleu électrique
Case Is = "FG": Plgtab.Interior.Color = RGB(255, 255, 0) 'jaune
Case Is = "MZ": Plgtab.Interior.Color = RGB(231, 62, 1) 'abricot
Case Is = "ML": Plgtab.Interior.Color = RGB(24, 194, 230) 'bleu ciel
Case Is = "CO": Plgtab.Interior.Color = RGB(240, 130, 200) 'rose foncé
Case Is = "DA": Plgtab.Interior.Color = RGB(255, 165, 90) 'orange pale
Case Else
Plgtab.Interior.Pattern = xlNone 'suppr de la couleur si plus de base
Plgtotal.ClearContents 'suppr du contenue de la ligne si plus de base
End Select
End If
'CHANGEMENT DE COULEUR DE LA LIGNE SI INTERVENTION FAITE (COLONNE "O") + RETOUR A LA 1ère COULEUR SI SUPPR DE "X"
If Not Application.Intersect(Target, Plgfait) Is Nothing And Target.Count = 1 Then
Select Case Target
Case Is = "X": Plgtab.Interior.Color = RGB(170, 5, 80) 'magenta foncé
Case Is = "x": Plgtab.Interior.Color = RGB(170, 5, 80) 'magenta foncé
End Select
If Target.Value = "" Then
Select Case Cells(Target.Row, 10).Value
Case Is = "AN": Plgtab.Interior.Color = RGB(72, 198, 5) 'vert
Case Is = "HE": Plgtab.Interior.Color = RGB(225, 206, 154) 'Vanille
Case Is = "CH": Plgtab.Interior.Color = RGB(212, 115, 212) 'mauve
Case Is = "VE": Plgtab.Interior.Color = RGB(84, 249, 141) 'menthe à l'eau
Case Is = "FO": Plgtab.Interior.Color = RGB(255, 0, 0) 'rouge
Case Is = "NA": Plgtab.Interior.Color = RGB(44, 117, 255) 'bleu électrique
Case Is = "FG": Plgtab.Interior.Color = RGB(255, 255, 0) 'jaune
Case Is = "MZ": Plgtab.Interior.Color = RGB(231, 62, 1) 'abricot
Case Is = "ML": Plgtab.Interior.Color = RGB(24, 194, 230) 'bleu ciel
Case Is = "CO": Plgtab.Interior.Color = RGB(240, 130, 200) 'rose foncé
Case Is = "DA": Plgtab.Interior.Color = RGB(255, 165, 90) 'orange pale
End Select
End If
End If
'AJOUT DE VALEURS HORS TABLEAU POUR STAT (COLONNE: R à AB)
If Not Application.Intersect(Target, Plagebase) Is Nothing And Target.Count = 1 Then
Select Case Target
Case Is = "AN": Range("R" & Target.Row).Value = 1
Case Is = "HE": Range("S" & Target.Row).Value = 1
Case Is = "CH": Range("T" & Target.Row).Value = 1
Case Is = "VE": Range("U" & Target.Row).Value = 1
Case Is = "FO": Range("V" & Target.Row).Value = 1
Case Is = "NA": Range("W" & Target.Row).Value = 1
Case Is = "FG": Range("x" & Target.Row).Value = 1
Case Is = "MZ": Range("Y" & Target.Row).Value = 1
Case Is = "ML": Range("z" & Target.Row).Value = 1
Case Is = "CO": Range("AA" & Target.Row).Value = 1
Case Is = "DA": Range("AB" & Target.Row).Value = 1
End Select
End If
'AJOUT HORS TABLEAU DE LA VALEUR "1" SI FAIT & SUPPR DE LA VALEUR "1" SI PLUS DE BASE (COLONNE: AB) & STAT DELAIS
If Not Application.Intersect(Target, Plgfait) Is Nothing And Target.Count = 1 Then
Select Case Target
Case Is = "X": Plgstatfait.Value = 1 'Si "X" dans fait (MAJ)
Case Is = "x": Plgstatfait.Value = 1 'Si "x" dans fait (minuscule)
Case Else: Plgstatfait.ClearContents
End Select
If Not Application.Intersect(Target, Plgfait) Is Nothing And Target.Count = 1 Then
Select Case Target
Case Is = "X": Plgstatdelais.Value = DateDiff("d", Plgdate1, Plgdate2) ' Ajout du délais
Case Is = "x": Plgstatdelais.Value = DateDiff("d", Plgdate1, Plgdate2) ' Ajout du délais
Case Else: Plgstatdelais.ClearContents
End Select
End If
End If
'AJOUT HORS TABLEAU DE LA VALEUR "1" DANS LE MOIS SI AJOUT DE BASE POUR STAT(COLONNE: AE à AP)
If DateValue(Plgstatdate1) >= DateValue("01/01/2016") And DateValue(Plgstatdate1) <= DateValue("01/31/2016") Then
janvier.Value = 1
'MsgBox "test ok"
End If
'AJOUT HORS TABLEAU DE VALEUR "1" DANS LE MOIS SI INTERVENTION FAITE POUR STAT (COLONNE: AR à BC)
'code identique à celui de dessus mais en fonction de la date d'intervention fait
'COULEUR DES VALEURS HORS TABLEAU (COLONNE: >=Q)
With Range("Q:BE").Font
'.Color = RGB(255, 255, 255) 'blanc
.Color = RGB(32, 32, 32) 'noir
End With
'ACTIVATION DES EVENEMENTS
Application.EnableEvents = True
End Sub |
Partager