Incompatibilité de type
Résolu
DGVDR
Messages postés
158
Date d'inscription
Statut
Membre
Dernière intervention
-
DGVDR Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
DGVDR Messages postés 158 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je cherche à faire la somme de textbox et d'afficher cette somme dans un label :
VBA m'affiche une incompatibilité de type que je ne sais résoudre...
Pouvez vous m'aider ?
Merci beaucoup,
DGVDR
Je cherche à faire la somme de textbox et d'afficher cette somme dans un label :
Private Sub TextBox5_Change()
Label17 = CInt(TextBox4.Value) + CInt(TextBox5.Value) + CInt(TextBox6.Value) + CInt(TextBox7.Value) + CInt(TextBox8.Value) + CInt(TextBox10.Value) + CInt(TextBox11.Value) + CInt(TextBox12.Value) + CInt(TextBox13.Value)
End Sub
VBA m'affiche une incompatibilité de type que je ne sais résoudre...
Pouvez vous m'aider ?
Merci beaucoup,
DGVDR
2 réponses
-
Re-Bonjour,
Décidément on ne se quitte plus...
Aurais-tu, par le plus grand des hasards, des nombres décimaux à saisir dans tes textbox???
Si oui, remplace CInt par CDbl...
-
En effet, tu m'aides beaucoup :)
Et bien, oui ça peut arriver... Je vais donc remplacer par CDbl
Cependant lors de mes tests c'est au chargement de l'UF que ça pose problème, les textbox sont alors vides...
Après remplacement de CInt par CDbl, l'UF se charge mais lorsque je j'écris dans une textbox, on retrouve mon problème cité plus haut ...
Merci,
DGVDR -
Je saisi dans ces textbox des %ages, la somme de ces %ages devant atteindre 100%, calculer à chaque incrémentation de textbox me permet de vérifier ou j'en suis vis à vis du %age global.
Oui c'est la même chose dans toutes les textbox.
J'aurais en effet pu mettre un bouton, mais je trouvais ça plus simple avec l'événement ()Change, ceci évitant de recliquer sur un bouton...
-
-
J'ai maintenant compris ce que tu voulais faire.
Regarde ce code :Private Sub TextBox3_Change() Label1 = SommeTextBox(3, 6) End Sub Private Sub TextBox4_Change() Label1 = SommeTextBox(3, 6) End Sub Private Sub TextBox5_Change() Label1 = SommeTextBox(3, 6) End Sub Private Sub TextBox6_Change() Label1 = SommeTextBox(3, 6) End Sub Function SommeTextBox(IndicDeb As Integer, IndicFin As Integer) As Double Dim i As Integer For i = IndicDeb To IndicFin If Me.Controls("TextBox" & i) <> "" Then SommeTextBox = SommeTextBox + Val(Me.Controls("TextBox" & i)) Next i End Function
Nota : Ce code n'est fonctionnel que si les numéros des taxtbox que tu veux sommer se suivent. Dans mon exemple, du textbox3 au 6. Dans le cas contraire, dis le, il y a également une solution...
-
-
Pour une seule, on ne va rien changer de fondamental, mais juste ajouter un test :
Function SommeTextBox(IndicDeb As Integer, IndicFin As Integer) As Double Dim i As Integer For i = IndicDeb To IndicFin If Me.Controls("TextBox" & i) <> "" And i <> 9 Then SommeTextBox = SommeTextBox + Val(Me.Controls("TextBox" & i)) Next i End Function -
-
-
-