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

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

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