Insérer un commentaire si...

Christian0258

XLDnaute Accro
Bonjour à tout le forum,

Je souhaiterais adapter une macro afin d'insérer un commentaire sur une ligne, si le total d'heures dépasse une référence d'heures maxi...

voir fichier joint

Merci pour votre aide si précieuse.

Bien à vous,
Christian
 

Pièces jointes

  • InsérerCommentaireSi.xlsm
    16.9 KB · Affichages: 20

vgendron

XLDnaute Barbatruc
Hello
il faut comparer entre bons formats
VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("F18:NG18")) Is Nothing Then
    If Format(Target, "hh:mm") > "08:00" Then
        With Range(Target.Address)
            .AddComment
            .Comment.Text Text:="Heure(s) supplémentaire(s) effectuée(s)"
        End With
    Else: Range(Target.Address).ClearComments
    End If
End If
End Sub
 

vgendron

XLDnaute Barbatruc
suffit de dire au code où aller chercher la valeur ==> du coup, il faut remodifier le format..

VB:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)

If Not Intersect(Target, Range("F18:NG18")) Is Nothing Then
   
    If Target > Sheets("Agent").Range("C36") * 2 Then
        With Range(Target.Address)
            .AddComment
            .Comment.Text Text:="Heure(s) supplémentaire(s) effectuée(s)"
        End With
    Else: Range(Target.Address).ClearComments
    End If
End If
End Sub
 

job75

XLDnaute Barbatruc
Bonjour Christian, vgendron,

Un code un peu plus propre :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [F18:NG18]) Is Nothing Or Target.Count > 1 Then Exit Sub
Target.ClearComments
If Target > 2 * Sheets("Agent").[C36] Then Target.AddComment "Heure(s) supplémentaire(s) effectuée(s)"
End Sub
A+
 

job75

XLDnaute Barbatruc
Re,

Une meilleure solution, dans ThisWorkbook :
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim test As Boolean, h
If Sh.Name = "Agent" Then test = Intersect(Target, Sh.[C36]) Is Nothing
If Sh.Name = "Planning" Then test = Intersect(Target, Sh.[F18:NG18]) Is Nothing
If test Then Exit Sub
h = 2 * Sheets("Agent").[C36]
Application.ScreenUpdating = False
With Sheets("Planning").[F18:NG18]
    .ClearComments
    For Each Target In .Cells
        If Target > h Then Target.AddComment "Heure(s) supplémentaire(s) effectuée(s)"
    Next
End With
End Sub
A+
 

Discussions similaires

Réponses
5
Affichages
517
Réponses
4
Affichages
291

Membres actuellement en ligne

Statistiques des forums

Discussions
312 196
Messages
2 086 100
Membres
103 116
dernier inscrit
kutobi87