Bonjour Isabelle et merci !
La macro fonctionne bien.
J'ai juste un seul petit problème et une question. Merci beaucoup d'avance pour votre retour
- Voici le problème : la macro fonctionne très bien, sauf dans le cas où on "rectifie" le résultat du contrôle (= par exemple passage en cellule G9 d’un résultat de + de 99% à - de 99%, c'est-à-dire que la cellule H9 affiche d'abord "Ctrl Présence", puis si le résultat en G9 devient inférieur à 99%, alors la mention "Ctrl Présence" disparaît en H9, mais la date reste en I9 alors que "Ctrl présence" a disparu en H9.
Pensez-vous qu'il y a une manière relativement simple de pallier à ce problème ?
- Et ma question : j'ai déjà une autre macro qui s'exécute sur ce même onglet (voir ci-dessous la macro). Comment intégrer votre macro à la macro déjà existante ? (autrement dit, comment faire fonctionner à la fois une macro "Private Sub Worksheet_Calculate()" et une macro "Private Sub Worksheet_Change(ByVal Target As Range)" ?
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iTRow%, iRowUp%
Dim Nom$, Num As Long, adresse As Range
'
Application.EnableEvents = False
'Insertion de cellules vers le bas de colonnes A à I si B24 non vide
iTRow = Target.Row
iRowUp = Target.End(xlUp).Row
If Not Intersect(Target, Range("B:B")) Is Nothing Then
If Target <> "" And Target.Offset(1, -1) = "TOTAL" Then
Range("A" & iTRow + 1 & ":I" & iTRow + 1).Insert shift:=xlDown
Range("E" & iTRow + 2).FormulaLocal = "=SOMME(E" & iRowUp & ":E" & iTRow & ")"
Range("F" & iTRow + 2).FormulaLocal = "=SOMME(F" & iRowUp & ":F" & iTRow & ")"
End If
End If
Set vtarget = Intersect(Target, Columns(14))
If Not (vtarget Is Nothing) Then
For Each varea In vtarget
For Each vcell In varea
If Not (IsEmpty(vcell.Value)) Then
If vcell.Row > 17 Then
Range("K" & vcell.Row).Value = Date
End If
Else
Range("K" & vcell.Row).ClearContents
End If
Next
Next
End If
If Not Intersect(Target, Range("I9:I13")) Is Nothing Then
Range("L9").Value = Range("I8").End(xlDown).Value
Nom = ActiveSheet.Name 'Nom client sous forme de texte
Num = ActiveSheet.Range("C9").Value 'Nom client
Set adresse = Sheets("Recap_dossiers").Range("C:C").Cells.Find(Num)
Sheets("Recap_dossiers").Range("E" & adresse.Row).Value = Sheets(Nom).Range("L9").Value
Sheets(Nom).Select
End If
If Not Intersect(Target, Range("R5")) Is Nothing Then
Nom = ActiveSheet.Name
Num = ActiveSheet.Range("C9").Value
Set adresse = Sheets("Recap_dossiers").Range("C:C").Cells.Find(Num)
Sheets("Recap_dossiers").Range("G" & adresse.Row).Value = Sheets(Nom).Range("R5").Value
End If
'
Application.EnableEvents = True
'
End Sub