VBA : Problème de code

F

Fab

Guest
Bonjour,
Il y a un problème avec ma macro.
Dans tous les cas, la condition n'est pour lui pas remplie.
Quelqu'un aurait-il le temps d'y jeter un coup d'oeil svp ?
Merci d'avance.

En mettant p. ex. :
113 à l'invite pour BruitDeFondDeReference
122 à l'invite pour BruitDeFondActuel

La tolérance (de 10 %) est donc :
124.3 pour MargePlus
101.7 pour MargeMoins

=> la condition If BruitDeFondActuel < Margemoins Or BruitDeFondActuel > MargePlus Then n'est pas remplie, il devrait passer au THEN. Et il ne le fait pas. Si je lui fais afficher toutes les valeurs stockée dans les variables, elles sont justes.




Sub MesureDuBruitDeFond()

Dim Message1, Title1, Default1
Dim Message2, Title2, Default2
Dim BruitDeFondDeReference, BruitDeFondActuel, MargePlus, Margemoins, Deviation

Message1 = "Indiquer la valeur du bruit de fond reporté dans le certificat de qualité fourni avec l'appareil (en [mV])"
Default1 = ""
BruitDeFondDeReference = InputBox(Message1, Title1, Default1)
Message2 = "Indiquer le bruit de fond mesuré (en [mV])"
Default2 = ""
BruitDeFondActuel = InputBox(Message2, Title2, Default2)

MargePlus = BruitDeFondDeReference * 1.1
Margemoins = BruitDeFondDeReference * 0.9
Deviation = Abs((BruitDeFondDeReference - BruitDeFondActuel) * 100 / BruitDeFondDeReference)
Deviation = Format(Deviation, "0.0")

' Rappatriement dans feuille Résumé
Sheets("Resume").Select
Range("B58").Select
If BruitDeFondActuel < Margemoins Or BruitDeFondActuel > MargePlus Then
ActiveCell.Value = "Le test a échoué"
Else
ActiveCell.Value = "Le test est réussi"
End If

Sheets("Test spec 03").Select

Range("B41").Select
If BruitDeFondActuel < Margemoins Or BruitDeFondActuel > MargePlus Then
ActiveCell.Value = "Le test a échoué, la déviation du bruit de fond par rapport à la valeur d'origine est de : " & Deviation & " %"
Else
ActiveCell.Value = "Le test est réussi, la déviation du bruit de fond par rapport à la valeur d'origine est de : " & Deviation & " %"
End If

End Sub
 
W

wally

Guest
Bonjour Fab et le forum,

Essaye avec :

If Val(BruitDeFondActuel) < Val(Margemoins) Or Val(BruitDeFondActuel) > Val(MargePlus) Then
ActiveCell.Value = "Le test a échoué"
Else
ActiveCell.Value = "Le test est réussi"
End If


Slts

wally
 

Discussions similaires

Statistiques des forums

Discussions
314 092
Messages
2 105 775
Membres
109 428
dernier inscrit
saadeddine el moatassim