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
|
'la macro se déclenche à chaque fois qu'une valeur est entrée dans une cellule de la feuille
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ligne As Variant
Dim Plage As Range
Dim Cel As Range
Dim Chaine As String
'saisie en colonnes A à E et A à D non vides
If Target.Column < 6 And Application.CountA(Cells(Target.Row, 1).Resize(, 5)) = 5 Then
'concatène le nom de la machine avec le nom du problème
Chaine = Cells(Target.Row, 4) & Cells(Target.Row, 5)
With Sheets("CalculsMacros")
'on cherche sur la feuille "CalculsMacros" le numéro de ligne correspondant à l'évènement et au nom de la machine
Set Plage = .Range(.Cells(4, 2), .Cells(.Rows.Count, 2).End(xlUp))
For Each Cel In Plage
If Cel.Value & Cel.Offset(, 1).Value = Chaine Then
Ligne = Cel.Row
Exit For
End If
Next Cel
'si on ne le trouve pas, on affecte le n° de la ligne "Autres"
'on peut aussi rechercher ce n°
If IsEmpty(Ligne) Then Ligne = 9
'on additionne le nombre de la colonne C de la feuille "saisie-pilote" dans la colonne E
' de la feuille "CalculsMacros"
.Cells(Ligne, 5) = .Cells(Ligne, 5) + Cells(Target.Row, 3)
.Cells(Ligne, 8) = .Cells(Ligne, 8) + 1
End With
End If
End Sub |
Partager