Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSelect Case .valQI <---- ce ValQI ci de mémoire Case Is < 0 .valKPI = ((Math.Sqrt(.valQI + 4)) * .valKCI) / 2 Case Is > 0 .valKPI = (2 * .valKCI) / (Math.Sqrt(4 - .valQI)) Case Else .valKPI = .valKCI End Select
'If DecimalSeparator = "," Then QI.Text = QI.Text.Replace(".", ",") ' test si numérique 'If Double.TryParse(QI.Text, ValQI) = True Then ' QI contient bien une valeur numérique 'ValQI = Convert.ToDouble(QI.Text)
Private Sub QI_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles QI.GotFocus calculok = False QI.Text = "" QI.Refresh()
Private Sub calculqi() 'Erreur dans QI 'affichage de QI en fonction de QILEFT et QIRIGHT If TextBoxosod.Text = "OS" Then indiceoeil = 0 Etiqoeiltraite.Text = "OS" VALQILEFT = Convert.ToDouble(QILEFT.Text) ValQI = VALQILEFT QI.Text = ValQI.ToString("0.00") End If If TextBoxosod.Text = "OD" Then indiceoeil = 1 Etiqoeiltraite.Text = "OD" VALQIRIGHT = Convert.ToDouble(QIRIGHT.Text) ValQI = VALQIRIGHT QI.Text = ValQI.ToString("0.00") End If calculqitest() End sub Private Sub calculqitext() ' remplacement du "." par une "," If DecimalSeparator = "," Then QI.Text = QI.Text.Replace(".", ",") ' test si numérique If Double.TryParse(QI.Text, ValQI) = True Then ' QI contient bien une valeur numérique ValQI = Convert.ToDouble(QI.Text) If Txtrelift.Text = "N" Then 'Calcul de delta QI deltaqi.Text = (Math.Abs(CDbl(QILEFT.Text)) - Math.Abs(CDbl(QIRIGHT.Text))).ToString("0.00") 'Cas de l'oeil gauche If TextBoxosod.Text = "OS" Then Etiqoeiltraite.Text = "OS" Select Case VALQILEFT Case Is <= -0.3 ValQI = -0.3 Case Else ValQI = VALQILEFT End Select QI.Text = ValQI.ToString("0.00") End If 'Cas de l'oeil droit If TextBoxosod.Text = "OD" Then Etiqoeiltraite.Text = "OD" Select Case VALQIRIGHT Case Is <= -0.3 ValQI = -0.3 Case Else ValQI = VALQIRIGHT End Select QI.Text = ValQI.ToString("0.00") End If End If If Txtrelift.Text = "Y" Then 'calcul de deltaQI deltaqi.Text = "0.00" 'cas de l'oeil droit If TextBoxosod.Text = "OD" Then Etiqoeiltraite.Text = "OD" ValQI = VALQIRIGHT Else 'cas de l'oeil gauche ValQI = VALQILEFT QI.Text = ValQI.ToString("0.00") End If End If Else messageaff = "QI is not a numeric value" infoaff = "Incorrect data" MessageBox.Show(messageaff, infoaff, MessageBoxButtons.OK, MessageBoxIcon.Warning) QI.Text = "" QI.Refresh() QI.Focus() erreur = True Exit Sub End If End Sub
Private Sub calcul() If txtNOM.Text = "" Then txtNOM.Text = "XXXXXXXXXXXXX" If txtPRENOM.Text = "" Then txtPRENOM.Text = "XXXXXXXXXXXXX" If erreur = True Then calculok = False : Exit Sub Initialisationcouleurtextbox() LabelHEHN.Visible = False RectangleShapeHEHN.Visible = False If Pseudo.Checked = True Then Pseudo.Checked = True Pseudo.ForeColor = Color.LimeGreen Else Pseudo.Checked = False Pseudo.ForeColor = Color.White End If If relift.Checked = True Then relift.Checked = True relift.ForeColor = Color.LimeGreen Else relift.Checked = False relift.ForeColor = Color.White End If With oeil PACHYREP.Text = PACHY.Text OZREP.Text = "6.50" .valS = Convert.ToDouble(S.Text) .valC = Convert.ToDouble(C.Text) .valAxe = Convert.ToInt32(AXE.Text) ' c'est une valeur entière .valK1 = Convert.ToDouble(K1.Text) .valK2 = Convert.ToDouble(K2.Text) .ValPACHY = Convert.ToDouble(PACHY.Text) .valtxtpseudo = Txtpseudo.Text ' c'est une valeur entière .valtxtrelift = Txtrelift.Text ' c'est une valeur entière .valtxtother = Txtother.Text ' c'est une valeur entière ' 5 VALEURS OPTIONNELLES ' On en tient compte que si leurs Textbox sont <> "" If ACD.Text <> "" Then .ValACD = Convert.ToDouble(ACD.Text) If AL.Text <> "" Then .ValAL = Convert.ToDouble(AL.Text) If AD.Text <> "" Then .ValAD = Convert.ToDouble(AD.Text) SIMAGE.Text = (.valS).ToString("0.00") CIMAGE.Text = (.valC).ToString("0.00") ' Calcul de S' ; C' et A' ST.Text = ((.valS) + (.valC)).ToString("0.00") CT.Text = (-(.valC)).ToString("0.00") ATL.Text = ((.valAxe) + 90).ToString("0") If CDbl(ATL.Text) > 180 Then AT.Text = ((.valAxe) - 90).ToString("0") Else AT.Text = ((.valAxe) + 90).ToString("0") End If .valST = Convert.ToDouble(ST.Text) .valCT = Convert.ToDouble(CT.Text) .valAT = Convert.ToInt32(AT.Text) ' c'est une valeur entière ' Traitement de K1IMAGE etK2IMAGE If .valK1 <= .valK2 Then K1IMAGE.Text = .valK1.ToString("0.00") K2IMAGE.Text = .valK2.ToString("0.00") Else K1IMAGE.Text = .valK2.ToString("0.00") K2IMAGE.Text = .valK1.ToString("0.00") End If 'Traitement de SIMAGE 'plage de S : +6.00 à -11.00 bornes comprises Dim ajouts As Double Dim ajoutc As Double Select Case .valS Case Is > -6 ' entre -5.99 et +6.00 ajouts = 0 Case Is > -7 ' entre -6.00 et -6.99 ajouts = 0.25 Case Is > -8.5 ' entre -7.00 et -8.49 ajouts = 0.5 Case Is > -9.5 ' entre -8.50 et -9.49 ajouts = 0.75 Case Is > -10.5 ' entre -9.49 et -10.49 ajouts = 1 Case Else ' entre -10.50 et -11.00 ajouts = 1.25 End Select ' Traitement de CIMAGE ' Plage de C : -6.00 à +6.00 bornes comprises Select Case .valC Case Is > -3 ' entre +6.00 et -2.99 ajoutc = 0 Case Is > -5 ' entre -3.00 et -4.99 ajoutc = 0.25 Case Else ' entre -5.00 et -6.00 ajoutc = 0.5 End Select If .valS <= 0 And .valC <= 0 Then CIMAGE.Text = (.valC + ajoutc).ToString("0.00") SIMAGE.Text = (.valS + ajouts - ajoutc).ToString("0.00") Else CIMAGE.Text = (.valC).ToString("0.00") SIMAGE.Text = (.valS).ToString("0.00") End If ' on passe en VERT si ajouts <> 0 If ajouts <> 0 Then SIMAGE.BackColor = Color.DarkGreen Else If ajoutc <> 0 Then SIMAGE.BackColor = Color.DarkGreen Else SIMAGE.BackColor = Color.LightSlateGray End If End If ' on passe en VERT si ajoutc <> 0 If ajoutc <> 0 Then CIMAGE.BackColor = Color.DarkGreen SIMAGE.BackColor = Color.DarkGreen Else CIMAGE.BackColor = Color.LightSlateGray End If ' Traitement SIMAGE 2 et 3, CIMAGE 2 et 3 et AXEIMAGE 2 et 3 SIMAGE2.Text = SIMAGE.Text If SIMAGE.BackColor = Color.DarkGreen Then SIMAGE2.BackColor = Color.DarkGreen LabelWL.Visible = True RectangleShapeWL.Visible = True Else SIMAGE2.BackColor = Color.LightSlateGray LabelWL.Visible = False RectangleShapeWL.Visible = False End If CIMAGE2.Text = CIMAGE.Text If CIMAGE.BackColor = Color.DarkGreen Then CIMAGE2.BackColor = Color.DarkGreen LabelWL.Visible = True RectangleShapeWL.Visible = True Else CIMAGE2.BackColor = Color.LightSlateGray LabelWL.Visible = False RectangleShapeWL.Visible = False End If SIMAGE3.Text = SIMAGE.Text If SIMAGE.BackColor = Color.DarkGreen Then SIMAGE3.BackColor = Color.DarkGreen LabelWL.Visible = True RectangleShapeWL.Visible = True Else SIMAGE3.BackColor = Color.LightSlateGray LabelWL.Visible = False RectangleShapeWL.Visible = False End If CIMAGE3.Text = CIMAGE.Text If CIMAGE.BackColor = Color.DarkGreen Then CIMAGE3.BackColor = Color.DarkGreen LabelWL.Visible = True RectangleShapeWL.Visible = True Else CIMAGE3.BackColor = Color.LightSlateGray LabelWL.Visible = False RectangleShapeWL.Visible = False End If ' Traitement de AXEIMAGE et VIMAGE valtext = 12 VIMAGE.Text = valtext.ToString("0.00") ' fixe AXEIMAGE.Text = .valAxe.ToString("0") AXEIMAGE2.Text = AXEIMAGE.Text AXEIMAGE3.Text = AXEIMAGE.Text ' Traitement de SE,SEDILATE, KCI et KCF .valSE = (.valC / 2) + .valS SE.Text = .valSE.ToString("0.00") .valSED = (.valCC / 2) + .valSC SED.Text = .valSED.ToString("0.00") .valKCI = (.valK1 + .valK2) / 2 KCI.Text = .valKCI.ToString("0.00") .valKCF = .valKCI + .valSE KCF.Text = .valKCF.ToString("0.00") 'Traitement de UOZMIN .valUOZMIN = ((.ValAL * .valPupilphoto) / (.ValAL - .ValACD)) UOZMIN.Text = (.valUOZMIN).ToString("0.00") 'Traitement de UOZMEAN .ValUOZMEAN = ((.ValAL * .valPupilmeso) / (.ValAL - .ValACD)) UOZMEAN.Text = (.ValUOZMEAN).ToString("0.00") 'Traitement de UOZMAX .ValUOZMAX = ((.ValAL * .valPupilmax) / (.ValAL - .ValACD)) UOZMAX.Text = (.ValUOZMAX).ToString("0.00") ' Traitement de KPI Select Case .valQI Case Is < 0 .valKPI = ((Math.Sqrt(.valQI + 4)) * .valKCI) / 2 Case Is > 0 .valKPI = (2 * .valKCI) / (Math.Sqrt(4 - .valQI)) Case Else .valKPI = .valKCI End Select KPI.Text = .valKPI.ToString("0.00") VALKPF = .valKPI KPF.Text = VALKPF.ToString("0.00") ' Traitement de QL .valKPF = .valKPI If .valKCF = .valKPF Then .valQL = 0 Else If .valKCF < .valKPF Then .valQL = (((1 - ((.valKCF / .valKPF) ^ 2))) * 4) Else .valQL = (((1 - ((.valKPF / .valKCF) ^ 2))) * -4) End If End If QL.Text = .valQL.ToString("0.00") calculok = False ' Traitement de AD et ADP PictureBox2.Visible = True If .valSE > 0 Then If .valS > 0 And .valC = 0 Then ValAD = 0 AD.Text = ValAD.ToString("0") ValADP = CInt((Math.Abs(.valS * 16.3))) ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img2 End If If .valS = 0 And .valC > 0 Then ValAD = 0 AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(.valC * 16.3)) ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img3 End If If .valS > 0 And .valC < 0 Then 'utilisation de la transformée ValAD = 0 AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(((.valCT + .valST) * 16.3) + (((.valCT + .valST) * 16.3) * 0.041666))) ADP.Text = ValADP.ToString("0") interne.Visible = True ST.Visible = True CT.Visible = True AT.Visible = True arobase.Visible = True Me.PictureBox2.Image = My.Resources.img4 End If If .valS > 0 And .valC > 0 Then ValAD = 0 AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(((.valC + .valS) * 16.3) + (((.valC + .valS) * 16.3) * 0.041666))) ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img5 End If If .valS < 0 And .valC > 0 Then ValAD = CInt(Math.Abs(-(.valS * 15))) AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(.valC * 16.3)) ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img6 End If End If If .valSE < 0 Then If .valS < 0 And .valC = 0 Then ValAD = CInt(Math.Abs(-(.valS * 15))) AD.Text = ValAD.ToString("0") ValADP = 0 ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img7 End If If .valS = 0 And .valC < 0 Then ValAD = CInt(Math.Abs(-(.valC * 16.3))) AD.Text = ValAD.ToString("0") ValADP = 0 ADP.Text = ValADP.ToString("0") interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False Me.PictureBox2.Image = My.Resources.img8 End If If .valS > 0 And .valC < 0 Then ' Utilisation de la transformée ValAD = CInt(Math.Abs((.valST) * 15)) AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(.valCT * 16.3)) ADP.Text = ValADP.ToString("0") interne.Visible = True ST.Visible = True CT.Visible = True AT.Visible = True arobase.Visible = True Me.PictureBox2.Image = My.Resources.img9 End If If .valS < 0 And .valC > 0 Then ' Utilisation de la transformée ValAD = CInt(Math.Abs(((.valCT + .valST) * 15) - (((.valCT + .valST) * 15) * 0.05))) AD.Text = ValAD.ToString("0") ValADP = 0 ADP.Text = ValADP.ToString("0") interne.Visible = True ST.Visible = True CT.Visible = True AT.Visible = True arobase.Visible = True Me.PictureBox2.Image = My.Resources.img10 End If If .valS < 0 And .valC < 0 Then interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False ValAD = CInt(Math.Abs(((.valC + .valS) * 16.3) - (((.valC + .valS) * 16.3) * 0.041666))) AD.Text = ValAD.ToString("0") ValADP = 0 ADP.Text = ValADP.ToString("0") Me.PictureBox2.Image = My.Resources.img11 End If End If If .valSE = 0 Then If .valS < 0 And .valC > 0 Then interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False ValAD = CInt(Math.Abs(.valS * 15)) AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(.valC * 16.3)) ADP.Text = ValADP.ToString("0") Me.PictureBox2.Image = My.Resources.img12 End If If .valS > 0 And .valC < 0 Then ' Utilisation de la transformée interne.Visible = True ST.Visible = True CT.Visible = True AT.Visible = True arobase.Visible = True ValAD = CInt(Math.Abs(((.valCT + .valST) * 15) - (((.valCT + .valST) * 15) * 0.041666))) AD.Text = ValAD.ToString("0") ValADP = CInt(Math.Abs(.valCT * 16.3)) ADP.Text = ValADP.ToString("0") Me.PictureBox2.Image = My.Resources.img13 End If If .valS = 0 And .valC = 0 Then interne.Visible = False ST.Visible = False CT.Visible = False AT.Visible = False arobase.Visible = False ValAD = 0 AD.Text = ValAD.ToString("0") ValADP = 0 ADP.Text = ValADP.ToString("0") Me.PictureBox2.Image = My.Resources.img14 End If End If ' Calcul de QFIDEAL ou QFPROP If Pseudo.Checked = True Then valQFPROP = -1.5 ' Else Select Case Convert.ToInt16(TextAge.Text) Case Is < 40 valQFPROP = -0.8 ' De 0 à 40 ans : -0.80 Case 40 To 41 valQFPROP = -0.9 ' De 40 à 41 ans : -0.90 Case 42 To 43 valQFPROP = -0.95 ' De 42 à 43 ans : -0.95 Case 44 To 46 valQFPROP = -1.0 ' De 44 à 46 ans : -1.00 Case 47 To 52 valQFPROP = -1.05 ' De 47 à 52 ans : -1.05 Case 53 To 56 valQFPROP = -1.1 ' De 53 à 56 ans : -1.10 Case 57 To 62 valQFPROP = -1.15 'De 57 à 62 ans : -1.15 Case 63 To 70 valQFPROP = -1.2 ' De 63 à 66 ans : -1.20 Case Is > 70 valQFPROP = -1.25 ' De 67 à plus : -1.25 End Select End If QFPROP.Text = valQFPROP.ToString("0.00") 'calcul de la textbox rotate If C.Text < "0" Then rotate.Text = AXE.Text Else rotate.Text = CStr(CDbl(AXE.Text) + 90) End If 'rotation de l'image Dim Angle As Double = CDbl(Me.rotate.Text) Rotation(Angle) ' Calcul de RSB Try ' calcul RSB.Text = CStr(CDbl(PACHY.Text) - CDbl(AD.Text) - CDbl(Flap.Text)) Catch ex As Exception 'MsgBox("Saisie unvalide, remédier... ", vbExclamation) Pupilphoto.Focus() End Try 'Affichage des alertes rsb If RSB.Text > "300" Then PictureBoxvert.Visible = True labelrouge.Visible = False PictureBoxmainrouge.Visible = False PictureBoxJAUNE.Visible = False OvalShapeFalse.Visible = False FAILED.Visible = False OvalShapeok.Visible = True DONE.Visible = True End If If RSB.Text <= "250" Then PictureBoxvert.Visible = False labelrouge.Visible = True PictureBoxmainrouge.Visible = True PictureBoxJAUNE.Visible = False OvalShapeFalse.Visible = True FAILED.Visible = True OvalShapeok.Visible = False DONE.Visible = False End If If RSB.Text > "250" And RSB.Text < "300" Then PictureBoxvert.Visible = False labelrouge.Visible = False PictureBoxmainrouge.Visible = False PictureBoxJAUNE.Visible = True OvalShapeFalse.Visible = False FAILED.Visible = False OvalShapeok.Visible = True DONE.Visible = True End If 'Calcul de CTHICKNESS CTHICKNESS.Text = CStr(CDbl(PACHY.Text) - CDbl(AD.Text)) 'calcul de ajustement sur hypermetropie valDELTAS = ((Convert.ToDouble(SED.Text)) - (Convert.ToDouble(SE.Text))) 'calcul de delta valeur absolue de la différence de S et de SC DELTAS.Text = valDELTAS.ToString("0.00") 'Affichage de Delta 'Calcul de A1 If valDELTAS > 0 Then VALA1 = -(valDELTAS / 2) 'calcul de A2 = (DELTAS / 2) A1.Text = VALA1.ToString("0.00") 'Affichage de A1 Else A1.Text = "0.00" 'Affichage de A1 End If 'A valeur totale des ajustements A.Text = A1.Text ' Vérification de TS avec KCF et KPI DE VISION DE LOIN If .valQL <= 0 Then valverifTS = (.valKCF * (Math.Sqrt(4 + valQFPROP) / 2) - .valKPI) 'TS =[KCF * Math.Sqrt (4+QIDEAL)/2] - KPI End If If .valQL > 0 Then valverifTS = (.valKCF * (Math.Sqrt(4 + valQFPROP) / 2) - .valKCF) 'TS =[[KCF * Math.Sqrt (4+QIDEAL)/2] - KCF] End If VerifTS.Text = valverifTS.ToString("0.00") 'Calcul de TSA VALTSA = valverifTS ' La TS finale qui servira aux calculs ultérieurs est egale a la TS sans ajustements +/- la TSA TSA.Text = VALTSA.ToString("0.00") ' La TS finale qui servira aux calculs ultérieurs est egale a la TS sans ajustements +/- la TSA End With flagimage = 0 OvalShapeok.Visible = True OvalShapeFalse.Visible = False DONE.Visible = True FAILED.Visible = False Enregistrementstructure() Accesvisiondepres.Focus() ' accès à vision de près End Sub
.valQI = convert.todouble(QI.text)en
.valQI = CDbl(Me.QI.Text.Replace(".", ","))sinon j'avais une grosse exception.
if not Double.TryParse(QI.Text,valQI) then messagebox.show("chiffres seulement") exit sub end if