MsgBox sur évenement VB Excel

Véro -  
 Véro -
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. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  2. Véro
     
    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
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. Véro
     
    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