Afficher une seule fois un Popup sous excel et codé en VBA

mimy

XLDnaute Occasionnel
Bonsoir tout le monde,

Je suis en train de réaliser un fichier excel ou j'ai récupéré des cours boursiers. Donc dans une colonne, j'ai mis les cours et dans une autre mes "alertes".

Je désire afficher un pop up temporaire lorsque mon alerte se déclanche. Voici le code qui marche:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim mess As String

If Target.Address = "$B$7" Then

If Range("B7") < Range("C7") Then
CreateObject("WScript.Shell").Popup ("ALERTE INDICE BLABLA "), 3 'affichage popup limité a 3 secondes
End If

End If

End Sub

Imaginons que le cours baisse plusieurs fois à la suite, j'ai plusieurs popup qui s'affiche et excel se bloque.

J'aurais donc voulu savoir si on pouvait limiter l'affichage de popup dans ce cas !!

Merci beaucoup!
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Bonjour,

essaye peut être comme suit :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim mess As String
If Target.Address = "$B$7" Then
    If Range("B7") < Range("C7") Then
        Application.EnableEvents = True
        CreateObject("WScript.Shell").Popup ("ALERTE INDICE BLABLA "), 3 'affichage popup limité a 3 secondes
        Application.EnableEvents = False
    End If
End If
End Sub

bonne journée
@+
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Bonjour Pierrot!
C
a marche très bien mais imaginons que le cours baisse deux fois (donc dans ce que tu as fait c'est bien) mais après que le cours remonte et dépasse mon "alerte" et ensuite que le cours rebaisse sous l'alerte j'ai plus de popup qui s'affiche.

Je voudrais que ca se réaffiche à ce moment là tu vois???

En tout cas thanks!!!
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Re,

bah avec le code donné, que le cours baisse ou monte, peu importe, ca interromp simplement les procédures événementielles le temps que le popup est affiché.....
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Re,

Je vais reessayer car moi le popup ne s affiche plus.... une fois que le popup c est affcihé une première fois, il n'apparaît plus du tout meme si le cours varie ou baisse. Je dois mal faire la manip!

je vais retenter et te tiens au courant!

et par hasard, je me pose la question, est ce au on peut faire un pop up sonore??

merci en tout cas de ton aide!!!
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Ca ne marche pas... j ai l impression que le popup ne s execute qu une seule fois.
Car quand je mets à la main mon cours inferieur à l alerte, le popup se déclanche, ensuite quand je mets mon cours superieur à l alerte rien ne se passe et c est normal mais quand je remets mon cours inferieur à mon alerte rien ne s affiche...
Alors que normalement le popup devrait se reafficher. Je voudrais que le popup s affiche qu une fois si les valeurs de mon cours sont par exemple 5 fois consecutivement inferieures à la valeur de mon alerte. J éspère t eclairer un peu....

On pourrait faire une condition qui est la suivante : tant que mon cours est inferieur à mon alerte, relancer le popup toutes les 30 secondes par exemple.

Je suis pas tres calée en vba et je te remercie pour ton aide.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Re,

aarf, j'avais inversé le "true" et le "false", désolé.... ferme peut être complètement excel pour réactiver les procédures événementielles....

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim mess As String
If Target.Address = "$B$7" Then
    If Range("B7") < Range("C7") Then
        Application.EnableEvents = False
        CreateObject("WScript.Shell").Popup ("ALERTE INDICE BLABLA "), 3 'affichage popup limité a 3 secondes
        Application.EnableEvents = True
    End If
End If
End Sub
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

re,

Alors j ai changé ce que tu m as dit mais on en revient à la case départ, c est a dire si je mets plusieurs valeurs consecutives inferieures a mon alerte j ai à chaque fois mon popup qui s ouvre lorsque la valeur change. Or je voudrais limiter l affichage de mon pop up, par exemple si pendant 10 secondes ou meme si au bout de 5 changements de valeurs tu as toujours ton cours inferieure à ton alerte, là ton pop up s affiche.
Ou encore faire une boucle while qui dirait que tant que ton cours est inferieur à ton alerte pour plusieurs valeurs de ton cours, t affiche un pop up toutes les 30 secondes. Tu vois ce que je veux dire?

Merci Pierrot!!!!!!!!
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher une seule fois un Popup sous excel et codé en VBA

re,

regarde ceci, se déclenche au bout de 5 baisses...
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Static c As Byte
Dim mess As String
If Target.Address = "$B$7" Then
    If Range("B7") < Range("C7") Then
        c = c + 1
        If c = 5 Then
            CreateObject("WScript.Shell").Popup ("ALERTE INDICE BLABLA "), 3
            c = 0
        End If
    Else
        'voir ici comment tu veux considerer les hausses
    End If
End If
End Sub
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Merci encore Pierrot et désolée d abuser de ton temps...

J ai notamment un souci...
Lorsque j ai mis mon lien dans ma cellule "cours", il y a donc des valeurs et quand une est inferieure à mon alerte le pop up ne se declanche pas automatiquement.
Il faut que je clic sur ma cellule+entrer pour que ca marche.

Sais-tu comment faire pour que la cellule soit actualisée automatiquement?

merci
 

Pierrot93

XLDnaute Barbatruc
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Re,

dans le module de la feuille, dans la combo en haut à droite :
Code:
Private Sub Worksheet_Calculate()
End Sub

mais il faudra gérer la cellule modifiée différemment....
 

mimy

XLDnaute Occasionnel
Re : Afficher une seule fois un Popup sous excel et codé en VBA

Re,

J ai changé ce que tu m as dit mais le popup ne s affiche plus. Quand je remets Change a la place de Calculate là le popup se remet.

Qu entends tu par gérer la cellule modifiée differemment?
C est dur à faire??....
 

Discussions similaires

Statistiques des forums

Discussions
312 358
Messages
2 087 582
Membres
103 600
dernier inscrit
Tora61