Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul a l'interieur d un code

4 réponses
Avatar
DOMINIQUE
Bonjour le forum,
Pouvez vous m'aider sur mon problème?
Mon code plante par une incompatibilité de type.
C'est le début de code qui ne va pas lors des règles de calcul. voici le
code :

Sub ValeurDifferenceCarto()

Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)

If A > 0 Then

Me.Te_DifferenceCartoValeur = A
Me.Te_DifferenceCartoValeur.Visible = True
Me.Te_DifferenceCartoChevreuil.Visible = True
Select Case Te_SousMassif
Case Is = 1
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif1)
Case Is = 2
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointMassif2)
Case Is = 3
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif3)
Case Is = 4
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointmassif4)
Case Is = ""
Me.Te_DifferenceCartoChevreuil = A / Val(Te_valchgeneral)

End Select

Else
Me.Te_DifferenceCartoValeur.Visible = False
Me.Te_DifferenceCartoChevreuil.Visible = False
End If

Me.Te_DifferenceCartoChevreuil.Value =
Format(Te_DifferenceCartoChevreuil.Value, "##0.0;;0")
Me.Te_DifferenceCartoValeur.Value = Format(Te_DifferenceCartoValeur.Value,
"##0.0;;0")


End Sub

merci pour votre aide

4 réponses

Avatar
Daniel.C
Bonjour.
Par principe, j'utiise CBbl plutôt que Val qui nécessite sue le point
soit le symbole décimal. Sinon, sur quelle ligne exacte se situe
l'erreur ?
Daniel

Bonjour le forum,
Pouvez vous m'aider sur mon problème?
Mon code plante par une incompatibilité de type.
C'est le début de code qui ne va pas lors des règles de calcul. voici le code
:

Sub ValeurDifferenceCarto()

Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)

If A > 0 Then

Me.Te_DifferenceCartoValeur = A
Me.Te_DifferenceCartoValeur.Visible = True
Me.Te_DifferenceCartoChevreuil.Visible = True
Select Case Te_SousMassif
Case Is = 1
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif1)
Case Is = 2
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointMassif2)
Case Is = 3
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif3)
Case Is = 4
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointmassif4)
Case Is = ""
Me.Te_DifferenceCartoChevreuil = A / Val(Te_valchgeneral)

End Select

Else
Me.Te_DifferenceCartoValeur.Visible = False
Me.Te_DifferenceCartoChevreuil.Visible = False
End If

Me.Te_DifferenceCartoChevreuil.Value =
Format(Te_DifferenceCartoChevreuil.Value, "##0.0;;0")
Me.Te_DifferenceCartoValeur.Value = Format(Te_DifferenceCartoValeur.Value,
"##0.0;;0")


End Sub

merci pour votre aide
Avatar
DOMINIQUE
Bonjour Daniel,
Merci pour ton aide.
Ca plante tous l'userform et precise que userform.show en plantant.

En enlevant ce debut de code :


Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)





Cela fonctionne trés bien.

merci pour ton aide.



"Daniel.C" a écrit dans le message de groupe de
discussion : ecd#
Bonjour.
Par principe, j'utiise CBbl plutôt que Val qui nécessite sue le point soit
le symbole décimal. Sinon, sur quelle ligne exacte se situe l'erreur ?
Daniel

Bonjour le forum,
Pouvez vous m'aider sur mon problème?
Mon code plante par une incompatibilité de type.
C'est le début de code qui ne va pas lors des règles de calcul. voici le
code :

Sub ValeurDifferenceCarto()

Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)

If A > 0 Then

Me.Te_DifferenceCartoValeur = A
Me.Te_DifferenceCartoValeur.Visible = True
Me.Te_DifferenceCartoChevreuil.Visible = True
Select Case Te_SousMassif
Case Is = 1
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif1)
Case Is = 2
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointMassif2)
Case Is = 3
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif3)
Case Is = 4
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointmassif4)
Case Is = ""
Me.Te_DifferenceCartoChevreuil = A / Val(Te_valchgeneral)

End Select

Else
Me.Te_DifferenceCartoValeur.Visible = False
Me.Te_DifferenceCartoChevreuil.Visible = False
End If

Me.Te_DifferenceCartoChevreuil.Value =
Format(Te_DifferenceCartoChevreuil.Value, "##0.0;;0")
Me.Te_DifferenceCartoValeur.Value =
Format(Te_DifferenceCartoValeur.Value, "##0.0;;0")


End Sub

merci pour votre aide





Avatar
Daniel.C
Mets ton curseur dans la macro et appuie sur la touche F8 pour une
exécution ligne à ligne. Tu vas trouver la ligne en erreur. Retranscris
ici exactement ici le message d'erreur.
Daniel

Bonjour Daniel,
Merci pour ton aide.
Ca plante tous l'userform et precise que userform.show en plantant.

En enlevant ce debut de code :


Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)





Cela fonctionne trés bien.

merci pour ton aide.



"Daniel.C" a écrit dans le message de groupe de
discussion : ecd#
Bonjour.
Par principe, j'utiise CBbl plutôt que Val qui nécessite sue le point soit
le symbole décimal. Sinon, sur quelle ligne exacte se situe l'erreur ?
Daniel

Bonjour le forum,
Pouvez vous m'aider sur mon problème?
Mon code plante par une incompatibilité de type.
C'est le début de code qui ne va pas lors des règles de calcul. voici le
code :

Sub ValeurDifferenceCarto()

Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)

If A > 0 Then

Me.Te_DifferenceCartoValeur = A
Me.Te_DifferenceCartoValeur.Visible = True
Me.Te_DifferenceCartoChevreuil.Visible = True
Select Case Te_SousMassif
Case Is = 1
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif1)
Case Is = 2
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointMassif2)
Case Is = 3
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif3)
Case Is = 4
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointmassif4)
Case Is = ""
Me.Te_DifferenceCartoChevreuil = A / Val(Te_valchgeneral)

End Select

Else
Me.Te_DifferenceCartoValeur.Visible = False
Me.Te_DifferenceCartoChevreuil.Visible = False
End If

Me.Te_DifferenceCartoChevreuil.Value =
Format(Te_DifferenceCartoChevreuil.Value, "##0.0;;0")
Me.Te_DifferenceCartoValeur.Value = Format(Te_DifferenceCartoValeur.Value,
"##0.0;;0")


End Sub

merci pour votre aide





Avatar
DOMINIQUE
J'ai trouvé, dans un code parralelle, le format nétait pas le meme.
je vous remercie pour votre aide


"DOMINIQUE" a écrit dans le message de groupe de
discussion : #
Bonjour Daniel,
Merci pour ton aide.
Ca plante tous l'userform et precise que userform.show en plantant.

En enlevant ce debut de code :


Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)





Cela fonctionne trés bien.

merci pour ton aide.



"Daniel.C" a écrit dans le message de groupe de
discussion : ecd#
Bonjour.
Par principe, j'utiise CBbl plutôt que Val qui nécessite sue le point
soit le symbole décimal. Sinon, sur quelle ligne exacte se situe l'erreur
?
Daniel

Bonjour le forum,
Pouvez vous m'aider sur mon problème?
Mon code plante par une incompatibilité de type.
C'est le début de code qui ne va pas lors des règles de calcul. voici le
code :

Sub ValeurDifferenceCarto()

Dim A As Single
Dim b As Single
Dim c As Single
Dim e As Single
Dim f As Single
Dim d As Single

b = CDbl(Te_PointBois.Value)
c = CDbl(Te_PointPlaine.Value)
d = CDbl(Te_SurfCartoBois.Value)
e = CDbl(Te_SurfCartoPlaine.Value)
f = CDbl(Te_PointPlaineValeur.Value)

A = (b + c) - d + (e / f)

If A > 0 Then

Me.Te_DifferenceCartoValeur = A
Me.Te_DifferenceCartoValeur.Visible = True
Me.Te_DifferenceCartoChevreuil.Visible = True
Select Case Te_SousMassif
Case Is = 1
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif1)
Case Is = 2
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointMassif2)
Case Is = 3
Me.Te_DifferenceCartoChevreuil = A / Val(Te_PointMassif3)
Case Is = 4
Me.Te_DifferenceCartoChevreuil = A / Val(Te_pointmassif4)
Case Is = ""
Me.Te_DifferenceCartoChevreuil = A / Val(Te_valchgeneral)

End Select

Else
Me.Te_DifferenceCartoValeur.Visible = False
Me.Te_DifferenceCartoChevreuil.Visible = False
End If

Me.Te_DifferenceCartoChevreuil.Value =
Format(Te_DifferenceCartoChevreuil.Value, "##0.0;;0")
Me.Te_DifferenceCartoValeur.Value =
Format(Te_DifferenceCartoValeur.Value, "##0.0;;0")


End Sub

merci pour votre aide