VBA EXCEL incompatibilité de type

Résolu/Fermé
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 - 22 avril 2010 à 11:22
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 - 26 avril 2010 à 08:49
Bonjour,

j'ai un USF dans lequel je met des nombres dans des TxtBox puis multiplie des valeurs d'autres TxtBox par ces nombres ce qui me met dans des TxtBox (Total1,Total2 . . .) les sous totaux. ensuite j'appel une procédure pour additionner ces sous totaux.

Quand j'ai une valeur seulement dans Total1 ça marche bien, dès que Total2 a une valeur j'ai le maessage "incompatibilité de type".

Voici mes procédures:

Procédure calcul des sous totaux:


Formulaire.Total1.Value = Formulaire.Prix1.Value * Formulaire.Qté1.Value'calcul PU multiplié par Quantité
Dét_a 'appel la procédure Dét_a dans le module Calcul_des_Variables pour determiner a


Procédure Dét_a:

Sub Dét_a()
Dét_z 'appel procédure Dét_z dans module Calcul_des_Variables (total1 + total2) pour determiner z
a = z + 5
End Sub


Procédure Dét_z:

Public z As Double
Sub Dét_z()
z = Formulaire.Total1.Value + Formulaire.Total2.Value
End Sub


Et c'est là que le message arrive sur mon addition. . . .

Quelqu'un aurait-il une idée, je pense à une mauvaise déclaration de variable mais j'ai déjà essayé long,variant,integer et toujours le meme problème....

Merci d'avance.


A voir également:

2 réponses

Gord21 Messages postés 918 Date d'inscription samedi 21 novembre 2009 Statut Membre Dernière intervention 20 mars 2013 289
23 avril 2010 à 21:38
Bonsoir,
As-tu essayé de convertir le Type :
z = CDbl(Formulaire.Total1.Value) + CDbl(Formulaire.Total2.Value)

@+
0
informatifien Messages postés 741 Date d'inscription lundi 18 mai 2009 Statut Membre Dernière intervention 10 janvier 2016 92
26 avril 2010 à 08:49
Salut Gord21,

merci pour ta réponse mais j'ai trouvé une solution dans le wee end j'ai changé de methode j'ai mis ma macro dans le changement d'état de la textbox et voilà le résultat:

Public a As Double

Private Sub Qté1_Exit(ByVal Cancel As MSForms.ReturnBoolean)

If Qté1 > 0 Then
Total1.Value = Prix1.Value * Qté1.Value
a = Total1.Value + 5
PrixTotal = a
ElseIf Qté1 = 0 Then
End If

End Sub


Et là plus de problème et le résultat est bon merci quand même
0