Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Interdire valeur négative sous forme de macro

  • Initiateur de la discussion Initiateur de la discussion mimil
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

mimil

Guest
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
 
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
@+
 
Re : Interdire valeur négative sous forme de macro

Bonjour ,

J'ai encore besoin d'aide !! Je veux interdire les valeur negatives seulement a partir de la colonne E par exemple
 
Re : Interdire valeur négative sous forme de macro

Bonjour mimil, le fil, le forum,
Pour t'aider il faudrait un petit fichier exemple. Cela premetrai de comprendre la structure de ta feuille..
Cordialement
 
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
@+
 
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

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
 
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
 
Re : Interdire valeur négative sous forme de macro

Re,

Et ensuite j'ai un probléme car si je supprime plusieurs données ya une erreur qui s'affiche ( errer...'13' ..)
de quel code parles tu ? plusieurs déjà donnés.. peut être faire un test sur le nombre de cellules modifiées :
Code:
If Target.Count > 1 Then Exit Sub
 
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 modification par un modérateur:
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
 
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....
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…