VBA EXCEL incompatibilité de type [Résolu/Fermé]

Signaler
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
-
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
-
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.


2 réponses

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

@+
Messages postés
741
Date d'inscription
lundi 18 mai 2009
Statut
Membre
Dernière intervention
10 janvier 2016
88
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