Interdire valeur négative sous forme de macro

mimil

XLDnaute Junior
Bonjour,

Comment écrire une macro pour dire que dans ma feuille dés qu'il ya une valeur negative
un message d'alerte s'affiche ( ATTENTION VALEUR NEGATIVE) ??

Sachant que j'utilise des combobox et textbox dans ma macro !

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Interdire valeur négative sous forme de macro

Bonjour,

essaye ceci, à placer dans le module de la feuille concernée...
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If IsNumeric(Target) And Target.Value < 0 Then MsgBox "inf à 0..."
End Sub

vu les détails donnés...

bon après midi
@+
 

Pierrot93

XLDnaute Barbatruc
Re : Interdire valeur négative sous forme de macro

Bonjour mimil, fg

modifie comme suit :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then Exit Sub
If IsNumeric(Target) And Target.Value < 0 Then MsgBox "inf à 0..."
End Sub
bonne journée
@+
 

mimil

XLDnaute Junior
Re : Interdire valeur négative sous forme de macro

Bonjour

Fichier en PJ


LE fonctionnement : tu choisi le batiment 1 , puis le mois conso gaz octobre puis tu rentre une donnée dans la textbox!

Exemple: M7= 1000

si en textbox on saisie 2000 alors resultat en P7 = 1000 ok
Mais si en textbox on saisie 500 alors resultat P7 = -500 erreur

si le calcul donne un resultat negative , alors je veux un message erreur

MERCI
 

Pièces jointes

  • aide __1.xls
    83 KB · Affichages: 84
  • aide __1.xls
    83 KB · Affichages: 88
  • aide __1.xls
    83 KB · Affichages: 102

Pierrot93

XLDnaute Barbatruc
Re : Interdire valeur négative sous forme de macro

Re,

essaye comme ceci, dans l'événement "calculate" de la feuille, à placer dans le module de la feuille concenée :
Code:
Option Explicit
Private Sub Worksheet_Calculate()
If IsNumeric(Range("P7")) And Range("P7").Value < 0 Then MsgBox "inf à 0..."
End Sub
 

mimil

XLDnaute Junior
Re : Interdire valeur négative sous forme de macro

Enfaite j'ai réutilisé ta formule un peu plus haut !! elle fonctionne bien !! mais je voudrais que la valeur ne s'incremente pas !! c-a-d que si c negative on ne peut continué!

Et ensuite j'ai un probléme car si je supprime plusieurs données ya une erreur qui s'affiche ( errer...'13' ..)
suite a cette macro car quand je l'enleve tout marche trés bien

MERCI
 

mimil

XLDnaute Junior
Re : Interdire valeur négative sous forme de macro

Voici le code

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Then Exit Sub
If IsNumeric(Target) And Target.Value < 0 Then MsgBox "inf à 0..."
End Sub

1) si La valeur est negative elle ne doit pas s'incrementer


Sinon j'ai un probléme c'est que si je veut supprimer plusieurs valeur , ca me fait un bug !! alors que si je selectionne qu'une seul je peux la supprimer
Ca me fait ceci depuis que j'ai rajouter ta formule donc c bizarre



Merci
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Interdire valeur négative sous forme de macro

Re,

pour éviter l'erreur si plusieurs cellules supprimées :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Or Target.Count > 1 Then Exit Sub
If IsNumeric(Target) And Target.Value < 0 Then MsgBox "inf à 0..."
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : Interdire valeur négative sous forme de macro

Re,

essaye comme ceci :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column < 5 Or Target.Count > 1 Then Exit Sub
If IsNumeric(Target) And Target.Value < 0 Then MsgBox "inf à 0...": Target = ""
End Sub

effacera le contenu... mais si il faut remettre la valeur initiale, il faut gérer via une variable "public", celle-ci initialisé avec l'événement "selectionchange"... enfin, plus délicat à gérer....
 

Discussions similaires

Statistiques des forums

Discussions
312 463
Messages
2 088 625
Membres
103 893
dernier inscrit
FAB59163