MsgBox sur évenement VB Excel

Bonjour,
Je viens sur ce forum car je veux réaliser une alerte sur une feuille excel qui se déclenche que le chiffre d'une colonne est en dessous de -0.2 ou au dessus de 0.2.

Je tiens à préciser que je suis totalement novice (et nulle) en VB mais on me le demande à mon boulot.

Voilà le script :

Sub alerte()
Dim Dt As Range
Dim Ws As Worksheet
Dim Ok As Boolean

Set Ws = Worksheets("Feuil1")

For Each Dt In Ws.Range("I5:I1000")
If Dt > 0.2 And Dt < -0.2 And Dt <> "" Then
If Not Ok Then
MsgBox "Delta inférieur à -20% ou supérieur à 20%"
' Shell "WScript " & """C:\Documents and Settings\Veronique.Hecker\Bureau\alerte.vbs"""'
Ok = True
End If
End If
Next Dt
End Sub

Et il me dit "erreur d'execution 13 incompatibilité de type"

En vrai il n'aime pas 2 choses : le - et les virgules (j'ai mis des points et changer dans l'option régionale).

Si quelqu'un avait une solution, ce serait merveilleux.

Merci d'avance

Véro
Configuration: Windows XP
Firefox 2.0.0.11

4 réponses

  1. Contributeur
    bonjour

    Comme ceci cela devrait être plus efficace
     If Dt > 0.2 Or Dt < -0.2 And Dt <> "" Then
    
    MsgBox "Delta inférieur à -20% ou supérieur à 20%"
    ' Shell "WScript " & """C:\Documents and Settings\Veronique.Hecker\Bureau\alerte.vbs"""'
    
    End If
    Next Dt 
    
    0
    1. Bonjour

      Merci de votre aide. Alors voilà j'ai essayé, il est vrai que c'est mieux comme ça, mais le message d'erreur 13 reste là quand même "incompatibilté de type" et je ne sais pas pourquoi. Dans mon fichier excel j'ai fait attention au format de cellule.

      Sub alerte()
      Dim Dt As Range
      Dim Ws As Worksheet
      Dim Ok As Boolean

      Set Ws = Worksheets("Feuil1")

      For Each Dt In Ws.Range("I2:I1000")

      If Dt > 0.2 Or Dt < -0.2 And Dt <> "" Then
      If Not Ok Then
      MsgBox "Delta inférieur à -20% ou supérieur à 20%"
      ' Shell "WScript " & """C:\Documents and Settings\Veronique.Hecker\Bureau\alerte.vbs"""'
      Ok = True
      End If
      End If
      Next Dt

      End Sub

      Merci beaucoup

      Véro
      0
      1. Contributeur
        bonjour

        J'ai testé ton code et il fonctionne sur ma machine sans rien changer.

        Il faut voir quelle est la ligne qui bloque pour remédier au problème.
        0
        1. Bonjour,

          Dommage que cela ne fonctionne pas tout à fait chez moi. Cela fonctionne la msbox s'affiche mais à la fin il me donne quand même le message d'erreur ce qui est quand m^me génant

          Si tu as une autre solution

          Merci d'avance

          Véro
          0