Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1871 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur 13 :incompatibilité type

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur 13 :incompatibilité type

n°2018624
Lila0999
Posté le 24-08-2010 à 10:41:33  profilanswer
 

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!!!

mood
Publicité
Posté le 24-08-2010 à 10:41:33  profilanswer
 

n°2018646
olivthill
Posté le 24-08-2010 à 11:23:47  profilanswer
 

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)

n°2018658
Lila0999
Posté le 24-08-2010 à 12:08:55  profilanswer
 

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 ^^

n°2018844
olivthill
Posté le 25-08-2010 à 10:21:41  profilanswer
 

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".


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur 13 :incompatibilité type

 

Sujets relatifs
Une erreur sur mon code PHP ?Erreur 500
Recherche editeur C type Nassi-Schneiderman[PHP] Erreur de format de date au RSS validator du W3C
[PHP] Erreur preg_replaceget file content type
Erreur d'incompatibilité de type sur VBAErreur d'exécution '13': incompatibilité de type
[VBA-EXCEL2003] incompatibilité de type erreur 13Problème d'incompatibilité de type (erreur 13)
Plus de sujets relatifs à : Erreur 13 :incompatibilité type


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR