Petit code VBA

Tom32

XLDnaute Occasionnel
Bonjour,

j'aurais besoin d'un tout petit code VBA (je pense qu'il est tout petit, mais je n'en suis pas sur).

J'aimerais qu'une fenêtre (type attention, la valeur est hors champ) s'ouvree si la valeur de la cellule H37 est supérieure à 10000.

Je ne sais pas du tout comment retranscrire ça en VBA. Quelqu'un peut il m'aider ?

Merci d'avance de votre aide
 

JNP

XLDnaute Barbatruc
Re : Petit code VBA

Re :),
Pour l'ouverture, dans ThisWorbook
Code:
Private Sub Workbook_Open()
If Sheets("Feuil1").Range("H37") > 10000 Then
MsgBox "Attention, valeur critique !", vbCritical, "Dépassement"
End If
End Sub
à adapter pour le nom de la feuille. Pour le changement de valeur, il faudrait savoir dans quelle cellule tu tapes les valeurs pour ne faire le test que si tu es dans ces cellules là, mais tu peux aussi mettre simplement dans le code de la feuille
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("H37") > 10000 Then
MsgBox "Attention, valeur critique !", vbCritical, "Dépassement"
End If
End Sub
Bon courage :cool:
 

job75

XLDnaute Barbatruc
Re : Petit code VBA

Bonsoir Tom32, JNP :)

On se remet vite au boulot après le bug du siècle [Edit : supprimé le smiley car c'était du sérieux] , un grand merci David, que ferait-on sans XLD ?

Autre solution dans le code de la feuille, intéressante surtout si la cause du dépassement se trouve dans une autre feuille :

Code:
Private Sub Worksheet_Calculate()
If Range("H37") > 10000 Then _
MsgBox "Attention, valeur critique !", vbCritical, "Dépassement"
End Sub

A+
 
Dernière édition:

Tom32

XLDnaute Occasionnel
Re : Petit code VBA

oups oui ça ne venait pas du 10000 mais c'est bon j'ai trouvé la solution, une bête erreur de sécurité des macros !! (oui je sais erreur bête ...)

Juste un petit détail purement informatif, si je veux changer la croix rouge de la message box par un signe attention, il faut que je change vbcritical non ?? Et par quoi ??

Petit détail supplémentaire, une fois que H37 a dépassé la valeur voulue, la message box s'ouvre à chaque fois que je change de cellule, ce qui peut être énervant, n'est il pas possible que la message box ne s'ouvre qu'une seule fois après que H37 ait dépassé la valeur souhaitée ??

Sur c emerci et bonne soirée
 

JNP

XLDnaute Barbatruc
Re : Petit code VBA

Re :),
Pour que le message ne s'affiche que lorsque tu changes la valeur, c'est ce que je te demandais tout à l'heure, quelles cellules changent?
En admettant que ce soit A1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
If Range("H37") > 10000 Then
MsgBox "Attention, valeur critique !", vbExclamation, "Dépassement"
End If
End Sub
ne réagira que si A1 est modifié, donc à adapter à ton cas. J'ai mis un vbExclamation, je pense que ça t'ira mieux.
Bon courage :cool:
 

Tom32

XLDnaute Occasionnel
Re : Petit code VBA

Alors l'idée est bonne, seulement ça ne fonctionne pas parce que c'est une valeur dans une colonne qui peut changer (celles dans la colonne B) et deuxièmement, parce qu'il y a déja une valeur donnée par une formule dans cette colonne B.
Donc la fonction Is Nothing ne peut pas fonctionner étant donné qu'il y a toujours quelque chose dans les cellules de ces colonnes. Il faudrait une fonction Is Changing lol mais je sais pas si ça existe...
 

JNP

XLDnaute Barbatruc
Re : Petit code VBA

Re :),
Donc la fonction Is Nothing ne peut pas fonctionner étant donné qu'il y a toujours quelque chose dans les cellules de ces colonnes.
Non, Is Nothing vérifie si l'intersection de la cellule qui vient de changer correspond à la zone souhaitée...
Par contre, si c'est dans la colonne C par exemple que la valeur changée va se calculer dans B, puis du coup en H37, c'est l'intersection de C et de Target qu'il va faloir surveiller.
Capito ?
Bonne journée :cool:
 

Tom32

XLDnaute Occasionnel
Re : Petit code VBA

Pas tout capito,

En tout cas il y a toujours des valeurs calculées dans la colonne B. Ces valeurs sont régulièrement modifiées (la formule est écrasée) ce qui peut amener à changer la valeur de la cellule H37.

Voila le scénario susceptible de changer la cellule H37. Je sais pas si c'est plus clair?

Merci
 

Discussions similaires

Réponses
17
Affichages
448

Statistiques des forums

Discussions
312 196
Messages
2 086 094
Membres
103 116
dernier inscrit
kutobi87