Erreur 13 :incompatibilité type

Erreur 13 :incompatibilité type - VB/VBA/VBS - Programmation

Marsh Posté le 24-08-2010 à 10:41:33    

Bonjour!
Alors voilà, je n'arrive pas à retirer un nombre d'une textbox d'un nombre dans une cellule de ma page. J'ai une erreur d'incompatibilité type (erreur 13)
 
Voici le code, et en rouge là où ca me pose problème
 
Private Sub CommandButton1_Click()
Dim x As Integer
If TextBox1.Value = "" Then
    TextBox1.Value = 0
Else
    If TextBox2.Value = "" Then
        TextBox2.Value = 0
    End If
End If
 
x = CDbl(Me.TextBox1) + CDbl(Me.TextBox2)
TextBox3.Value = x
Sheets("Feuil1" ).Select
Range("D1" ).Value = CDec(Range("D1" ).Value) - TextBox3
 
End Sub
 
 
Merci d'avance!!!

Reply

Marsh Posté le 24-08-2010 à 10:41:33   

Reply

Marsh Posté le 24-08-2010 à 11:23:47    

Ah, c'est de l'Excel !
 
Pour faire un test, est ce que la même erreur apparait avec seulement  

Range("D1" ).Value = CDec(Range("D1" ).Value)


Je soupçonne que le problème vient du "- TextBox3 ".
 
Comme son nom l'indique, une textbox contient normalement du texte, et non pas un nombre.
Mais VB est souple, et utilise souvent des données de type Variant.
Je crois que c'est ce qui se passe sur la ligne

TextBox3.Value = x

Cette ligne aurait dû donner une erreur, si VB n'était pas souple, car on ne devrait pas mettre un nombre là où il faudrait avoir une chaine de caractères.
Il aurait mieux value faire

TextBox3.Value = CStr(x)


Ensuite, dans la formule qui ne marche pas, c'est peut-être parce, dans ce cas-là VB, serait moins souple.
Essayer :

Range("D1" ).Value = CDec(Range("D1" ).Value) - CDbl(TextBox3.Value)

Reply

Marsh Posté le 24-08-2010 à 12:08:55    

J'ai essayé et ca me met toujours pareil pour la ligne Range("D1" ).Value = CDec(Range("D1" ).Value) - CDbl(TextBox3.Value)
 
Une autre idée?  
En fait, j'ai examen demain ^^

Reply

Marsh Posté le 25-08-2010 à 10:21:41    

Une autre idée, c'est que si D1 est au format d'une chaine, alors on peut essayer

Range("D1" ).Value = CStr(CDec(Range("D1" ).Value) - CDbl(TextBox3.Value))

De toutes manières, c'est un problème de types, donc il faut essayer toutes les conversions possibles. On peut aussi essayer des trucs plus simples, juste pour débugger, par exemple Range("D1" ).Value = 123 ou Range("D1" ).Value = "abdc".

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed