Insérer un commentaire si...

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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+
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
377
Réponses
10
Affichages
346
Retour