Erreur : incompatibilité de type

Bonsoir le forum !

J'ai grandement besoin de votre aide car je bloque depuis bien 1 heure sur mon code

Voici ce dernier :

For i = 1 To 3
    If Me.Controls("TextN" & i) <> "" Or Me.Controls("TextN" & i) <> 0 Then
        fe.Range("G" & lgn).Value = Me.Controls("TextN" & i).Value * fe.Range("E" & lgn).Value
    Else
        fe.Range("G" & lgn).Value = fh.Range("H" & lgne)
    End If
    lgn = lgn + 1
    lgne = lgne + 1
Next i

Seulement voilà, "erreur d'exécution '13' : incompatibilité de type" n'arrête pas d'apparaître à cause de cette ligne :

fe.Range("G" & lgn).Value = Me.Controls("TextN" & i).Value * fe.Range("E" & lgn).Value

Pourtant les textbox en question ne peuvent contenir que des données numériques. De plus j'ai réessayé en remplaçant Me.Controls("TextN" & i).Value par TextN3.Value et ça fonctionne sans problème. Je ne comprends pas d'où vient le hic !

Je vous remercie par avance pour votre aide (je m'excuse car je ne peux pas mettre le fichier en pièce jointe, il est trop lourd).

Bonsoir Ndiaye,

justement, on ne multiplie pas du texte, VALUE ayant, d'après mes lectures, la même valeur que TEXT.

Donc, il faut convertir TextBox1.value ---> Val(TextBox1.Text)

fe.Range("G" & lgn).Value = Val(Me.Controls("TextN" & i).Text) * fe.Range("E" & lgn).Value

ou

fe.Range("G" & lgn).Value = CInt(Me.Controls("TextN" & i).Value) * fe.Range("E" & lgn).Value

CInt ou CDbl ou d'autres en fonction de ce que tu as dans la TextBox.

Cela devrait aller beaucoup mieux! Sinon, remplace aussi, si possible 'Range' par 'Cells' si cela ne va toujours pas...

A+

Bonsoir,

En complément de Curulis (Salut !!) enregistre une bonne fois qu'une TextBox ne contient jamais autre chose que du texte (et c'est pareil pour les autres contrôles...).

Si quand tu affectes une valeur provenant d'une TextBox à une cellule tu obtiens un nombre, c'est parce qu'Excel a automatiquement opéré une conversion (mais ça ne marche pas toujours, et pas quand tu veux faire une opération avant...)

Si tu utilises Val avec une donnée censée représenter un nombre décimal, cette fonction ne connait que le point comme séparateur décimal. Il te faut éventuellement remplacer les virgules par des points...

Cordialement.

Merci à vous deux, ça marche nickel

Très bonne fin de soirée !

Rechercher des sujets similaires à "erreur incompatibilite type"