Une nouvelle fois je recherche l'aide du forum , j'ai un fichier ci-joint dans lequel
En B6:B26 la valeur saisie
En D626 Ecart d'un jour à l'autre
En C28 la somme de D626
Si possible je voudrais que lorsque l'on atteint 20 dans l'exemple 1 un message s'affiche (clignotant si possible) , jusqu'à l'acquittement du message attestant d'une réelle prise en compte.et que la cellule passe en fond rouge.
Dans l'exemple 2 même colonne j'ai continué à saisir à la suite des valeurs et je voudrais avoir la même fonction lorsque j'atteindrai 40 et ainsi de suite.
L'idéal serait que la valeur soit modifiable .
Pour les messages j'avais vu sur le fil des exemples de cellules ou de formes clignotantes proposés par MydearFriend qui étaient vraiment supers
mais je n'ai pas réussi à les adapter dans mon fichier (car mon niveau vb --)
Les cellules clignotantes sont très bien pour une alerte ponctuelle, mais faire clignoter une alerte en permanence rend tout travail assez pénible (en plus de ralentir Excel), donc pas forcément adapté à ton cas, comme le dit Job (que je salue )
Dans le fichier joint, une piste en attendant d'autres propositions meilleures que ça, avec 1 msg box qui s'affiche si le seuil est atteind (pas aussi fort qu'un clignotement, mais agaçant quand même tu verras ...):
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [C6:C26]) Is Nothing Then
If [C28] >= [C1] Then
MsgBox ("Prévoir enlèvement")
End If
End If
If Not Intersect(Target, [E6:E26]) Is Nothing Then
If [E28] >= [E1] Then
MsgBox ("Prévoir enlèvement")
End If
End If
End Sub
et une simple mise en forme conditionnelle sur la dernière cellule remplie, si le seuil est atteint, avec cet exemple de formule:
Tu as peut être raison , question gadget .Mais bon il y a surement d'autres façons de faire comprendre à quelqu'un qu'il n'est pas sur le bon chemin ou qu'il n'est pas au même niveau que soi pour comprendre que xls n'est tout simplement par fait pour ce genre de choses. Néanmoins je tire toujours profit des remarques que l'on me fait , Surtout celles qui sont constructives et qui m'aident à avancer.
annov, je te remercie pour ton MP, mais je le remets ici ainsi qu'une tentative de réponse; toujours plus intéressant d'échanger à plusieurs sur le forum qu'en tête à tête en MP, et tu auras ainsi certainement d'autres propositions que mon essai.
bonsoir, mth
Merci pour la solution effectivement le msgbox est plus adapté qu'une cellule clignotante.
Peut tu me donner quelques précisions sur les points ci dessous;
Le remplissage de la cellule se fait par MFC mais est il possible par ce biais de maintenir le remplissage lorsque je passe à la cellule suivante ?
Ou dois je passer obligatoirement par une macro .
J'ai regardé la macro mais je n'ai pas compris comment faire pour que le message disparaisse après acquittement j'usqu'au prochain seuil rencontré.
Tu trouveras en PJ une autre proposition en fait 2 façons de faire, une pour la colonne C:
Plus du tout de mise en forme conditionnelle, et ce code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR=darkgreen]'si la saisie n'est pas dans les cellules C6 à C26[/COLOR]
If Not Intersect(Target, [C6:C26]) Is Nothing Then
[COLOR=darkgreen]'si C27>C1[/COLOR]
If [C27] >= [C1] Then
[COLOR=darkgreen]'Affichage du message[/COLOR]
MsgBox ("Prévoir enlèvement")
[COLOR=darkgreen]'cellule passe en rouge[/COLOR]
Target.Interior.Color = 255
End If
End If
End Sub
Ca fonctionne, mais je ne trouve pas ça très agréable finalement.
Autre idée appliquée à la colonne E:
Suppression des mise en forme conditionnelles, et ce code:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
[COLOR=darkgreen]'Si la saisie n'est pas dans les cellules E6 à E26[/COLOR]
If Not Intersect(Target, [E6:E26]) Is Nothing Then
[COLOR=darkgreen]'Si E27>E1[/COLOR]
If [E27] >= [E1] Then
[COLOR=darkgreen]'Cellule passe en rouge[/COLOR]
Target.Interior.Color = 255
[COLOR=darkgreen]'Ajout d'un commentaire[/COLOR]
Target.AddComment ("Prévoir enlèvement")
[COLOR=darkgreen]'Ajustement de la taille du commentaire[/COLOR]
Target.Comment.Shape.TextFrame.AutoSize = True
End If
End If
End Sub
J'ai ajouté une petite macro pour éliminer les couleurs et les commentaires en cas de besoin:
Code:
Sub RemiseABlanc()
With Sheets("Feuil1")
On Error Resume Next
.Range("E6:E26").ClearComments
.Range("E6:E26").Interior.Color = xlNone
On Error GoTo 0
End With
End Sub
Pour la partie commentaires, je me suis inspirée du site de JBoisgontier
Voilà, je te laisse regarder si cela peut t'aider.
Bonsoir,mth
Un grand merci pour ton aide.Nettement mieux que mon idée initiale de cellule clignotante.
Merci pour les commentaires des codes , super utile pour un débutant comme moi.