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

4 réponses

gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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
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
gbinforme Messages postés 14946 Date d'inscription   Statut Contributeur Dernière intervention   4 724
 
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
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