2 Msgbox différentes selon valeur dans texbox

slaurent01

XLDnaute Junior
Bonjour le forum,

J'ai un problème dans un userform et je fais appel à votre aide.
Apres la saisie dans une textbox, j'execute un ratio et selon la valeur de ce ratio je veux faire afficher des messages box :
- si ratio compris entre 0.95 et 1 pas de message
- si ratio > 1 bloquer la saisie
- si ratio < 0.95 message d'alerte

Mon problème est que seule la premiere condition fonctionne pas la deuxième.


Code:
Private Sub Tbxlau_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
'Contrôle vraissemblance laize utilisée
Dim Ratio As Single
Ratio = (Tbxnela * Tbxla) / Tbxlau

'condition 1 bloquer la saisie si le ratio est > à 1
If Ratio < 0.95 Then
        If MsgBox("La gâche latérale est supérieure à 5% ! la laize utilsée est la mieux adaptée ?", vbQuestion + vbYesNo, "Attention !") Then
        Cancel = True
        End If
        
'condition 2 message d'alerte si le ration est < à 0.95
If Ratio > 1 Then
    
    If MsgBox("Incohérence nombre d'étiquettes à la laize / laize utilisée", vbCritical + vbOKOnly, "Attention !") Then
    Cancel = True
    Else
    
    End If
End If
End If
End Sub

Merci par avance pour votre aide

Cordialement
Stéphane
 

camarchepas

XLDnaute Barbatruc
Re : 2 Msgbox différentes selon valeur dans texbox

Bonjour Stéphane,

Avec quelle valeur testes tu la macro .

Un petit fichier contextuel serait plus significatif.

J'ai fais des tests en forçant la valeur de la variable ratio , et les 2 conditions fonctionnent.
 

ChTi160

XLDnaute Barbatruc
Re : 2 Msgbox différentes selon valeur dans texbox

Bonjour slaurent01
Bonjour le Fil
Bonjour le Forum
pas évident effectivement
peut être en utilisant Un Select Case
Ex
VB:
Select Case Ratio
   Case < 0.95
      Msg= "La gâche latérale est supérieure à 5% ! la laize utilsée est la mieux adaptée ?"
   Case > 1
      Msg= "Incohérence nombre d'étiquettes à la laize / laize utilisée"
End select 
MsgBox( Msg, vbCritical + vbOKOnly, "Attention !")
a voir , une fois encore pas évident , non testé donc Lol
Bonne fin de Journée
Amicalement
Jean Marie
 

slaurent01

XLDnaute Junior
Re : 2 Msgbox différentes selon valeur dans texbox

bonjour le forum

bonjour camarchepas, cthi60, merci pour vos réponses. Chti60 j'ai testé ta proposition mais ca ne marche pas.

En fait je veux faire une validation de données, avec des messages différents selon le résultat de "ratio".

Je reviendrai vers vous avec un fichier plus détaillé.
Merci pour votre attention

Cordialement
stephane
 

ChTi160

XLDnaute Barbatruc
Re : 2 Msgbox différentes selon valeur dans texbox

Re
Arff ne t'Inquiete pas Lol
je n'espérais pas que cela marche (vu la nature du fichier joint lol) j'ai juste proposé une Idée ....
avec un fichier tu verras que cela marchera.
Bonne fin de Journée
Amicalement
Jean marie
 

ChTi160

XLDnaute Barbatruc
Re : 2 Msgbox différentes selon valeur dans texbox

Re

Je pense que tu avais testé comme ceci Lol
VB:
Sub test()
'Ratio = 0.9
Ratio = 2
 msg = ""
Select Case Ratio
   Case Is < 0.95
      msg = "La gâche latérale est supérieure à 5% ! la laize utilsée est la mieux adaptée ?"
   Case Is > 1
      msg = "Incohérence nombre d'étiquettes à la laize / laize utilisée"
End Select
If msg <> "" Then
MsgBox msg, vbCritical + vbOKOnly, "Attention !"
End If
End Sub
Bonne fin de Soiré
Amicalement
Jean Marie
 

camarchepas

XLDnaute Barbatruc
Re : 2 Msgbox différentes selon valeur dans texbox

Bonjour Chti , Laurent,
Désolé , mais là pétage de plomb ...

Bon , un peu du foutage de G.... qu'en même
Tu poses un semblant de question genre : Quand ma baignoire sera t-elle pleine ?

Bon , la réponse n'est pas compliquée , sauf que tu ne nous donnes aucune infos pour résoudre ton problème.

Il faudrait au moins la date et heure du début du remplissage , la capacilté en litre de la baignoire , connaitre le débit en litres minute du robinet de remplissage , et pourquoi pas tenir compte d'une fuite au niveau du bouchon de vidange .

Là c'est pareil et la réponse tu pouvais nous la communiquer car ce n'est pas le code lui même qui est en cause , même si pas forcement optimisé, c'est bien le jeu de données de test qui n'est pas bon ou mal interfacé au code de résolution
au lieu de ça :

En fait je veux faire une validation de données, avec des messages différents selon le résultat de "ratio".

Je reviendrai vers vous avec un fichier plus détaillé.
Merci pour votre attention

Donc je pense que si un jour tu daignes nous communiquer ces infos, l'on aura zapper ton problème
 

slaurent01

XLDnaute Junior
resolu : 2 Msgbox différentes selon valeur dans texbox

Bonjour le forum,

J'ai trouvé la réponse. Merci chti160 ca m'a bien aidé. Effectivement j'avais appliqué au début le code que tu m'avais fourni.....après reflexion et recherche j'ai pu écrire celui ci, même s'il n'est peut-être pas parfait...

Code:
Private Sub Tbxlau_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
'Contrôle vraissemblance laize utilisée
Dim Ratio As Single
Ratio = (Tbxnela * Tbxla) / Tbxlau
Select Case Ratio

Case Is > 1
MsgBox ("incohérence"), vbInformation
Cancel = True

Case Is < 0.95
If MsgBox("La gâche latérale est supérieure à 5% ! la laize utilsée est elle la mieux adaptée ?", vbInformation + vbYesNo) = vbNo Then
Cancel = True
End If
End Select

Je ne comprends pas bien ta remarque et surtout ta réaction canemarchepas....
Je suis plus que débutant en vba, je n'ai peut-être pas bien structuré ma question et la partie de mon fichier que j'ai joint, j'en prends note pour une prochaine demande au sein de ce forum qui m'a déja beaucoup aidé et dans lequel j'ai trouvé beaucoup de réponses.
Merci tout de même d'avoir prêté attention a ma demande

Cordialement
Stéphane
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : 2 Msgbox différentes selon valeur dans texbox

Bonjour le fil, bonjour le forum,

Stéphane, ce que Jean-Marie, que je salue au passage, (avec humour) et Çamarchepas, que je salue itou, (avec véhémence) ont essayé de te faire comprendre, c'est qu'un bout de code necessite souvent le petit fichier exemple qui va avec. Ça nous simplifie la vie et permet de te donner des réponses adéquates sans avoir à recréer les conditions de ton code. Est-ce que ça tu le comprends ?...
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko