VBA : Problème de code

  • Initiateur de la discussion Initiateur de la discussion Fab
  • 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 !

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
 
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
 
- 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

Réponses
2
Affichages
873
F
Réponses
3
Affichages
1 K
Pascal76
P
Retour