pop up alerte VBA

Canepa

XLDnaute Nouveau
Bonjour à tous,
je suis débutante pour ce qui est de VBA. j'ai un fichier à créer dans lequel on mesure l'écart entre une valeur théorique et une valeur réelle. jusque là, tout va bien.
ensuite je voudrais que lorsque l'écart est trop important 3 jour d'affilée, une fenêtre d'alerte s'ouvre avec un message indiquant la démarche à suivre et contenant un lien hypertexte vers le fichier à remplir dans ce cas là.
Je n'ai aucune idée de comment m'y prendre aidez moi svp!!!!
merci beaucoup!
 

Pièces jointes

  • exemple excel.xlsx
    9.2 KB · Affichages: 109
  • exemple excel.xlsx
    9.2 KB · Affichages: 110
  • exemple excel.xlsx
    9.2 KB · Affichages: 105

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Bonjour Canepa et bienvenue!

Il nous faudrait l'une ou l'autre indication supplémentaire:
- les données sont encodées "manuellement" chaque jour ou il s'agit de données importées depuis un programme tiers?
- la "démarche" que l'utilisateur devra accomplir en cas de dépassement est toujours identique ou elle variera?
- idem pour le fichier à remplir: toujours le même qu'on complète en ajoutant des données ou un formulaire "unique"?
- une fois qu'on passe à 4 jours de dépassement, puis 5, etc... on continue à afficher l'alerte?
 

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

Merci Modeste pour ta réponse!
alors, chaque jour les données théoriques et manuelles sont entrées manuellement. La démarche est toujours la même, l'alerte serait donc du type: "attention écart trop important, alerter telle personne et remplir tel fichier (lien hypertexte)". le fichier à remplir en cas de problème est toujours le même, il est rempli tout au long de l'année et existe donc déjà.
Je pense que ça suffit si l'alerte n'est que pour 3 jours, puisque les personnes compétentes seront alors mises au courant. Peut être que ça serait bien (si c'est faisable!) de créer une autre alerte après 10 jours (une sorte de piqure de rappel si le problème n'est toujours pas résolu).
Merci beaucoup de ton aide encore une fois!
 

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Re-bonjour,

Je dois m'absenter une petite heure (et suis déjà en retard) ... Peux-tu déjà tester la pièce jointe, en encodant des valeurs (ligne par ligne) jusqu'à 3 jours d'écart consécutifs, puis 10 jours ... et voyons déjà si ça fonctionne jusque là.
Je repasse tout à l'heure, voir si c'est OK jusque là ... à moins qu'une autre proposition soit faite d'ici là.
 

Pièces jointes

  • Ecarts Canepa.xlsm
    17.2 KB · Affichages: 142

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Re²,

J'ai testé avant de déposer la proposition et viens de re-tester le fichier que j'ai fourni ... tu encodes bien ligne après ligne (de manière que la formule en colonne D s'ajoute au fur et à mesure)?? Le calcul se fait sur base du résultat affiché par cette formule.
On peut aussi afficher cette valeur par le biais de la macro (pour être certain qu'elle soit calculée à chaque changement dans la colonne C).
 

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

En effet ça fonctionne, autant pour moi, c'est parce que j'avais rempli une 20aine de cellules de la colonne en les tirant pour aller plus vite et ne pas saisir une a une les cellules. Cela n'arrivera pas dans l'utilisation normale de la feuille donc tout est ok!
Merci beaucoup!
 

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Re³,

Cela n'arrivera pas dans l'utilisation normale de la feuille
... C'est bien ce que j'avais cru comprendre :p Toutefois, pour s'éviter ce souci, nouvelle proposition, avec calcul et affichage de l'écart via la macro.
Cette fois, un UserForm est utilisé pour afficher le message d'alerte et c'est au clic sur le bouton "OK" que le second fichier doit s'ouvrir.

Attention, avant la première utilisation, ouvrir la pièce jointe, appuyer sur Alt+F11 pour afficher l'éditeur Vba. A gauche, cliquer droit sur le UserForm "Alerte" (voir image jointe) et choisir "Code". A la quatrième ligne, modifier le chemin d'accès et le nom du fichier à ouvrir (celui où l'utilisateur devra encoder l'incident). Enregistrer les modifications ... et tester!

Pour le calcul de la valeur de l'écart, j'ai ajouté un arrondi (j'ai laissé en colonne G du fichier le résultat fourni par l'ancienne formule ... avec quelques décimales affichées) Si c'est OK pour toi, on pourra, dans la macro travailler différemment du ">=0.119999999999999" que j'ai utilisé jusqu'ici.

Tu nous diras ce qu'il en est?

... Là-dessus, je vais tondre, tant qu'il ne pleut pas! :mad:
 

Pièces jointes

  • Ecarts Canepa (V2).xlsm
    25.1 KB · Affichages: 136
  • Alerte.png
    Alerte.png
    175.5 KB · Affichages: 182

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

Bonsoir Modeste,
j'ai pu tester ta proposition qui fonctionne parfaitement, merci pour les commentaire qui m'expliquent les étapes de la programmation, ça m'a bien aidée aussi. j'essaie de comprendre ce que tu as fais pour pouvoir me débrouiller seule la prochaine fois! le seul probleme que j'ai rencontré, (et je ne sais pas si il vient de ma formule ou de la macro) c'est que lorsque je renseigne valeur théorique et valeur réelle, l'écart se calcule correctement, puis la valeur se "fige": la formule (=abs(A-B)) disparait et c'est l'écart qui reste, meme si je supprime les valeur théoriques et reelle, la différence de ne se réinitialise pas à 0. Mais normalement ça ne devrait pas poser de problème lors d'une utilisation normale!

en tout cas je te remerce une fois de plus pour ton temps et ton aide précieuse!

Canepa
 

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Bonsoir Canepa,

Lorsque j'écrivais:
[...] nouvelle proposition, avec calcul et affichage de l'écart via la macro.
... Je faisais allusion à ce que tu relèves (j'aurais pu être plus explicite, j'en conviens :p mais surtout, ça évitait de recopier la formule au fur et à mesure avant d'encoder les valeurs).

Si tu l'estimes préférable on peut laisser ta formule de départ, voire même réinscrire -par macro- la formule dans la colonne D (plutôt que d'y inscrire la valeur brute). En l'état actuel, la valeur est recalculée, chaque fois que le contenu de la colonne C (pour la même ligne) est modifié, mais pas en cas de modif de la valeur en B.

N'hésite pas si tu veux qu'on te donne un coup de main pour améliorer les choses ... quand le demandeur y met du sien, c'est toujours plus agréable! :)
 

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

Bonjour,
Voilà maintenant 4 mois que ce fichier fonctionne à merveille...... jusqu'à ce matin!!
L'une des personnes chargées de le remplir m'a fait constater que lorsqu'on arrive en bas de tableau, le message d'erreur ne s'affiche pas quand il y a un problème, et que au contraire il s'affiche quand tout va bien.
Je mets le fichier en pièce jointe pour que vous puissiez regarder.
le problème a été constaté sur les colonnes C et D
en fait, j'ai l'impression que ça vient de là: If Application.CountIf(Target.Offset(-2, 1).Resize(3, 1), ">=0.149999999999999")
parce que 3 cellules plus haut, on est dans le rouge (écart supérieur au max autorisé), et quand je supprime ces valeurs (cellule D32), tout remarche.
Une idée?????
Merci beaucoup et bonne journée!!
 

Pièces jointes

  • controles filtration Aout.xlsm
    84.4 KB · Affichages: 116

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Bonjour Canepa,

A lire le code dans ton fichier actuel, force est de constater que les conditions d'affichage ont changé, depuis le mois d'avril!

En l'état actuel des choses, tu essaies d'afficher un message (pour les "Densité Anton Paar1") chaque fois que l'écart (pour le jour considéré) dépasse l'écart maximum et ce, pour autant qu'il n'y ait pas un autre dépassement au cours des 4 derniers jours!? A moins que quelque chose m'échappe, il me semble que c'est ce que fait la macro.
Plus question donc de tester 3 jours consécutifs de dépassement (puis 10 jours)?

Pourrais-tu repréciser à quelle(s) condition(s) tu souhaites qu'un message s'affiche, si tu dis que ça ne "fonctionne" plus?
 

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

Je me rends compte que je me suis un peu emballée ce matin et que je n'ai rien expliqué!!!
Alors, on a défini des priorités pour les appareils (expliquées dans l'onglet trigger point). En gros, pour les appareils de priorité A -comme l'anton paar-, dès qu'une valeur est dans le rouge, le message d'alerte doit s'afficher. Pour priorité B c'est 3 jours consécutifs, et priorité C 5 jours consécutifs.
Pour les 10 jours, nous nous somme rendu compte que ce n'est pas possible, puisque les mesures n'étant pas faites tous les jours, on atteint jamais 10 jours consécutifs!
Voilà, excuse moi de mon manque de précision!
 

Modeste

XLDnaute Barbatruc
Re : pop up alerte VBA

Re-bonjour,

je me suis un peu emballée ce matin
;) C'est rien de le dire ;)

Ceci dit s'il s'agit de repérer chaque dépassement, il me semble que ceci devrait suffire (je parle de la colonne D seulement, pour l'instant):
Code:
If Target.Offset(0, 1) >= Cells(4, Target.Column + 1) Then Alerte_densité.Show
... pour autant que, dans le cas présent, la cellule E4 contienne uniquement la valeur numérique correspondant au seuil (le terme 'max' devant la valeur pouvant être affiché par format personnalisé

Si on ne considère que les données strictement supérieures au "max", il me semble aussi que je supprimerais le signe '=' qui suit le '>'

Enfin si tu ne l'utilises jamais ... la variable cpt n'a pas vraiment de raison d'exister!?
 

Canepa

XLDnaute Nouveau
Re : pop up alerte VBA

le terme 'max' devant la valeur pouvant être affiché par format personnalisé
ok je vois l'idée, ça évite d'écrire 14,99999999etc. dans le code? à la limite, on peut même éliminer le mot "max"

la variable cpt n'a pas vraiment de raison d'exister!?
En effet! je le supprime!

Je viens de tester, et bien sûr, ça marche très bien :eek:
Par contre, petite question, Est ce que tu pourrais me détailler le code s'il te plait??

If Not Intersect(Target, [D2: D5000]) Is Nothing Then
If Target.Count > 1 Then Exit Sub
If Target = "" Then Exit Sub
If Target.Row >= 4 Then
If Target.Offset(0, 1) >= Cells(4, Target.Column + 1) Then Alerte_densité.Show
End If
End If

Parce que je voudrais essayer d'être autonom là dessus et de pas crier au secours dès qu'il y a un problème!!
Merci beaucoup!
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 331
Membres
103 519
dernier inscrit
Thomas_grc11